<div dir="ltr">On Windows, LLVM is migrating to its own debug info reading code (the Native PDB reader) instead of relying on DIA (a Microsoft-provided Windows-only DLL for accessing debug info), so that might explain the difference between the older versions and the current.<div><br></div><div>I don't know enough about LLDB's model to understand how debug info for run-time generated code is handled.  Certainly, at the time your transcript shows trying to set the breakpoint, the TestFunction.cpp code hasn't yet been compiled, so it's not a surprise that it cannot resolve the breakpoint at that time.  When TestFunction.cpp gets JITted into code, LLDB would have to (1) be informed of the new code, (2) locate the debug info, and (3) try again to resolve the pending breakpoint.  For me, there are a lot of unknowns in that sequence, so I cannot say whether it's expected to work in the current version.  If the JITted code is "loaded" dynamically the same way a DLL can be, then step 1 should work.  But if the JIT code is brought into process memory some other way, then I think it's likely the Windows debugger isn't getting notified and thus cannot do steps 2 and 3.</div><div><br></div><div>Is it possible to reduce the problem down to a minimal sample program that reproduces the problem and to include it in a bug report?</div><div><br></div><div>Thanks,</div><div>Adrian.</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Oct 17, 2020 at 1:51 AM le wang 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello,everyone:<div>      I have a problem when download llvm10.0.1 and use lldb to debug my process on windows10 x64 platform. but with no debug point hit.</div><div>the command is</div><div><div dir="ltr">(lldb)<span style="line-height:1.5">target create "D:/code/MLExecuteTest.exe"</span></div><div dir="ltr">Current executable set to 'D:/code/MLExecuteTest.exe'  (x86_64)     </div><div dir="ltr">(lldb)<span style="line-height:1.5">br s -fE:/test/TestFunction.cpp -l1</span></div><div dir="ltr">Breakpoint 1: no locations(pending).</div><div>WARNING :  Unable to resolve breakpoint to any actual locations.</div></div><div>(lldb)r</div><div>Process 16228 launched 'D:/code/MLExecuteTest.exe'</div><div>Process 16228 exited with status = 1(0x00000001)<br></div><div>my using detail is  this below:</div><div>MLExecuteTest.exe is my process which will first compile the script  TestFunction.cpp on debug mode  and generate binary code in its memory, of course binary code has debug information, and then  it use JIT ExecuteEngine to execute the binary code. I want to know, is llvm 10.0.1 support this using on windows platform. since before we use llvm5.0 on windows platform is OK, breakpoints can be hit. but while update version to 10.0.1, with same operation ,breakpoints can not be hit. so is llvm10.0.1 support or has any changes on this using on windows platform? <br></div><div></div><div></div><div><br></div><div>Thanks,</div><div>le wang</div></div></div></div></div></div></div></div></div></div></div></div></div>
_______________________________________________<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" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
</blockquote></div>