You actually can get dwarf on Windows, i made this work a long time ago before we were able to generate PDB, while i was still porting lldb to Windows.  Since pdb wasn’t a thing at the time, dwarf was necessary in order to get anything working.<br><br>I don’t know what the state of it is today though and I’d definitely consider it unsupported at minimum <br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 14, 2019 at 5:49 AM <<a href="mailto:paul.robinson@sony.com">paul.robinson@sony.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div class="m_4243155729000332257WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">(Resend, remembering to add lldb-dev back this time)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Asking for DWARF on Windows generally doesn't get you any info at all.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">FTR, the `-glldb` option means generate DWARF, "tuned" for LLDB.  Clang understands three "debugger tunings" which are gdb, lldb, and sce. The distinctions
 are minor and not relevant here.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">--paulr<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><a name="m_4243155729000332257__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></a></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> lldb-dev [mailto:<a href="mailto:lldb-dev-bounces@lists.llvm.org" target="_blank">lldb-dev-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Zachary Turner via lldb-dev<br>
<b>Sent:</b> Wednesday, March 13, 2019 8:07 PM<br>
<b>To:</b> Adrian McCarthy<br>
<b>Cc:</b> LLDB<br>
<b>Subject:</b> Re: [lldb-dev] LLDB not loading any debug information on windows<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Two things stand out to me as odd here.<u></u><u></u></p></div></div></div></div><div lang="EN-US" link="blue" vlink="purple"><div class="m_4243155729000332257WordSection1"><div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt"><div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">1) -glldb.  -g is supposed to specify the debug information format, either dwarf, codeview, or whichever is the default.  I've never heard of anyone using -glldb (or for that matter -ggdb).  Just -g, -gcodeview, or -gdwarf.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">2) You're using clang instead of clang-cl.  While it's possible to make things work, we designed clang-cl specifically to avoid these kinds of issues, so I would first try running `clang-cl /Z7 main.c` and see if things suddenly start working
 better.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">To be honest, I'm surprised it's even generating a PDB at all with the given command line, but then again it's not a codepath anyone has really tested, so maybe it's generating "something".<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Wed, Mar 13, 2019 at 5:01 PM Adrian McCarthy via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">Sorry for the delay.  There's definitely something going wrong here.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">If you specify the .pdb file (target symbols add a.pdb), it iterates through the objfile plugins to see if any match, and none of them do (because a PDB file is not a "module").<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">If you specify the .exe file (target symbols add a.exe), it matches an objfile plugin and creates the symbol vendor, but the symbol vendor says the symbol file is the .exe itself rather than the .pdb, so it appears to work but no symbols
 are actually loaded.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">If you specify the .exe with -s (target symbols add -s a.exe), you again get silent failure as in the previous case.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I'll look at this some more tomorrow to see if I can figure out what this code path is supposed to be doing.<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Mon, Mar 4, 2019 at 11:00 AM Christoph Baumann via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><span lang="DE">Hey,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">in order to try lldb on windows, i built (with clang compiler and lld linker (v7.0.1)) llvm, clang, lld and of course lldb from latest source with the following
 command line:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> cmake -G Ninja -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_LINKER=lld-link -DLLDB_RELOCATABLE_PYTHON=1 -DLLDB_PYTHON_HOME=“C:\program files\python37“
 -DLLVM_BUILD_TESTS=0 -DLLVM_BUILD_BENCHMARKS=0 -DLLVM_BUILD_EXAMPLES=0 -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGET_ARCH=host -DCMAKE_INSTALL_PREFIX=“..\release“ ..\src\llvm<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">>ninja install<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">Here my little program i used to test lldb:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> //main.c<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> #include <stdio.h><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> int a=10;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> int main(int argc, char *argv[]){<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">>             for(int i=0;i<argc;i++){<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">>                           printf("%s\n", argv[i]);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">>             }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">>             return(0);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">> }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">I compiled the above with „clang main.c -glldb -o a.exe“, which generated the executable a.exe and corresponding debug information a.pdb.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">I launched lldb with „lldb a.exe“ and tried to load the debug information with „target symbols add a.pdb“, however this resulted in „error: symbol file [….]\a.pdb
 does not match any existing module“.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">I am using Windows 10 pro 64bit, my both, my test program and lldb were compiled for x64 target.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">I have also tried the prebuilt llvm/lldb binaries (v8.0.0, v7.0.1) found on
<a href="http://llvm.org" target="_blank">llvm.org</a>, same result.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">I feel like i am missing something (unless lldb just does not work on windows yet).<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">(On a sidenote, compiling with -gdwarf-5 makes clang crash. I can send the debug information clang spits out once my debug build finishes.)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE">Greetings<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="DE"> <u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal">_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
</div>

</blockquote></div>