<div dir="ltr">The libstdc++ one is defined in examples/synthetic/gnu_libstdcpp.py while the libc++ one is defined in source/Plugins/Language/CPlusPlus/LibCxxVector.cpp and both of them is registered in source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp by specifying a type name regex to identify the effected types. If you have a custom STL or any other costume type I suggest you to write a synthetic child provider in Python (see <a href="https://lldb.llvm.org/varformats.html">https://lldb.llvm.org/varformats.html</a>) as it can be loaded at runtime so you don't have to fork LLDB.<div><br></div><div>Tamas</div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 24, 2017 at 4:30 PM Ted Woodward via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On standalone Hexagon (no OS support), we use Dinkumware for the c/c++<br class="gmail_msg">
library. LLDB isn't able to print out values of a vector:<br class="gmail_msg">
<br class="gmail_msg">
Process 1 stopped<br class="gmail_msg">
* thread #1: tid = 0x0001, 0x0000519c vector.elf`main + 76 at vector.cpp:10,<br class="gmail_msg">
stop reason = step in<br class="gmail_msg">
    frame #0: 0x0000519c vector.elf`main + 76 at vector.c:10<br class="gmail_msg">
   7            vector<int> v;<br class="gmail_msg">
   8            v.push_back(2);<br class="gmail_msg">
   9            v.push_back(1);<br class="gmail_msg">
-> 10           cout << v[0] << " " << v[1] << endl;<br class="gmail_msg">
   11           return 0;<br class="gmail_msg">
   12   }<br class="gmail_msg">
 (lldb) fr v v<br class="gmail_msg">
(std::vector<int, std::allocator<int> >) v = size=0 {}<br class="gmail_msg">
<br class="gmail_msg">
When I run on x86 linux built with gcc, I get:<br class="gmail_msg">
(lldb) fr v v<br class="gmail_msg">
(std::vector<int, std::allocator<int> >) v = size=2 {<br class="gmail_msg">
  [0] = 2<br class="gmail_msg">
  [1] = 1<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
My guess is Dinkumware's vector type is just a little bit different from<br class="gmail_msg">
libstdc++/libcxx, so the standard formatters don't do the right thing. Where<br class="gmail_msg">
are the vector<int> formatters defined, and how does LLDB determine which<br class="gmail_msg">
one to use?<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
Qualcomm Innovation Center, Inc.<br class="gmail_msg">
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a<br class="gmail_msg">
Linux Foundation Collaborative Project<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
lldb-dev mailing list<br class="gmail_msg">
<a href="mailto:lldb-dev@lists.llvm.org" class="gmail_msg" target="_blank">lldb-dev@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br class="gmail_msg">
</blockquote></div>