<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Background – I’m working on getting LLDB to run on Hexagon Linux, built with an LLVM toolchain. We’re using libc++ and MUSL. The loader is a bit squirrelly right now, so I’ve built LLDB statically.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’ve got full source debugging in the driver, but when I step into SBDebugger::Create, I don’t have any source. I’ve got symbols:<o:p></o:p></p><p class=MsoNormal>(lldb) bt<o:p></o:p></p><p class=MsoNormal>* thread #1: tid = 1, 0x00114730 lldb`lldb::SBDebugger::Create(bool) + 16, stop reason = breakpoint 2.1<o:p></o:p></p><p class=MsoNormal>  * frame #0: 0x00114730 lldb`lldb::SBDebugger::Create(bool) + 16<o:p></o:p></p><p class=MsoNormal>    frame #1: 0x000001dc lldb`Driver::Driver(this=0x7ffefc50) + 124 at Driver.cpp:150<o:p></o:p></p><p class=MsoNormal>    frame #2: 0x00006aa0 lldb`main(argc=1, argv=0x7ffefd34) + 240 at Driver.cpp:1350<o:p></o:p></p><p class=MsoNormal>    frame #3: 0x04744384 lldb`__libc_start_main + 48<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>list SBDebugger::Create fails, but list SBDebugger::Create(bool) gives me source.<o:p></o:p></p><p class=MsoNormal> (lldb) list SBDebugger::Create<o:p></o:p></p><p class=MsoNormal>(lldb) list SBDebugger::Create(bool)<o:p></o:p></p><p class=MsoNormal>File: \local\mnt\workspace\ted\linux\llvm\tools\lldb\source\API\SBDebugger.cpp<o:p></o:p></p><p class=MsoNormal>   172      return SBDebugger::Create(false, nullptr, nullptr);<o:p></o:p></p><p class=MsoNormal>   173  }<o:p></o:p></p><p class=MsoNormal>   174<o:p></o:p></p><p class=MsoNormal>   175  SBDebugger<o:p></o:p></p><p class=MsoNormal>   176  SBDebugger::Create(bool source_init_files)<o:p></o:p></p><p class=MsoNormal>   177  {<o:p></o:p></p><p class=MsoNormal>   178      return SBDebugger::Create (source_init_files, nullptr, nullptr);<o:p></o:p></p><p class=MsoNormal>   179  }<o:p></o:p></p><p class=MsoNormal>   180<o:p></o:p></p><p class=MsoNormal>   181  SBDebugger<o:p></o:p></p><p class=MsoNormal>   182  SBDebugger::Create(bool source_init_files, lldb::LogOutputCallback callback, void *baton)<o:p></o:p></p><p class=MsoNormal>   183<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Finally, I try to list based on the address of the function:<o:p></o:p></p><p class=MsoNormal>(lldb) list 0x114720<o:p></o:p></p><p class=MsoNormal>error: address resolves to lldb[0x0000000000114720], but there is no line table information available for this address.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>But there is line table information for 0x114720 (from llvm-dwarfdump):<o:p></o:p></p><p class=MsoNormal>0x0000000000114720    177      0     80   0             0  is_stmt<o:p></o:p></p><p class=MsoNormal>0x0000000000114730    178     32     80   0             0  is_stmt prologue_end<o:p></o:p></p><p class=MsoNormal>0x0000000000114734    178     12     80   0             0 <o:p></o:p></p><p class=MsoNormal>0x0000000000114754    178      5     80   0             0<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>My breakpoint at SBDebugger::Create resolved to prologue_end:<o:p></o:p></p><p class=MsoNormal>(lldb) break list<o:p></o:p></p><p class=MsoNormal>Current breakpoints:<o:p></o:p></p><p class=MsoNormal>1: name = 'main', locations = 1, resolved = 1, hit count = 1<o:p></o:p></p><p class=MsoNormal>  1.1: where = lldb`main + 32 at Driver.cpp:1335, address = 0x000069d0, resolved, hit count = 1<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>2: name = 'SBDebugger::Create', locations = 3, resolved = 3, hit count = 1<o:p></o:p></p><p class=MsoNormal>  2.1: where = lldb`lldb::SBDebugger::Create(bool) + 16, address = 0x00114730, resolved, hit count = 1<o:p></o:p></p><p class=MsoNormal>  2.2: where = lldb`lldb::SBDebugger::Create() + 8, address = 0x001143c0, resolved, hit count = 0<o:p></o:p></p><p class=MsoNormal>  2.3: where = lldb`lldb::SBDebugger::Create(bool, void (*)(char const*, void*), void*) + 40, address = 0x00114404, resolved, hit count = 0<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So – why can LLDB find the source when I specify the function explicitly, or find the line table info when I set a breakpoint, but not when I am in the function or list an address?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Ted<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>--<o:p></o:p></p><p class=MsoNormal>Qualcomm Innovation Center, Inc.<o:p></o:p></p><p class=MsoNormal>The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>