是否有办法在macOS上的LLDB中跨过dotnet源

时间:2019-01-04 01:50:32

标签: macos .net-core lldb

我正在研究如何在macOS上调试.NET应用程序。到目前为止,我已经使用libsosplugin.dylib成功编译了LLDB 3.9,并了解了如何在其中打开应用程序。但是,我找不到列出源并将断点放入其中的方法。

$HOME/SDK/build/release/bin/lldb-3.9.1 \
  -o "plugin load $HOME/SDK/coreclr/bin/Product/OSX.x64.Debug/libsosplugin.dylib" \
  -o "process launch -s" \
  dotnet ./bin/Debug/netcoreapp2.2/app.dll

当我用Crtl + C停止应用程序并为源输入l时,它什么也没做。

Process 39465 stopped
* thread #1: tid = 0x979f6, 0x0000000102b85795 libcoreclr.dylib`WKS::gc_heap::mark_object_simple(unsigned char**) + 293, stop reason = signal SIGSTOP
    frame #0: 0x0000000102b85795 libcoreclr.dylib`WKS::gc_heap::mark_object_simple(unsigned char**) + 293
libcoreclr.dylib`WKS::gc_heap::mark_object_simple:
->  0x102b85795 <+293>: movq   %rax, %rcx
    0x102b85798 <+296>: orq    $0x1, %rcx
    0x102b8579c <+300>: movq   %rcx, (%rdi)
    0x102b8579f <+303>: testb  $0x1, %al
(lldb) l
(lldb) 

是否有可能在LLDB中看到dotnet应用程序源?

1 个答案:

答案 0 :(得分:0)

该功能似乎没有任何调试信息-当然,没有任何lldb可以找到或读取。否则,lldb将无法从PC->源位置构建地图,因此基于源的操作将无法正常工作。

lldb仅支持DWARF和PDB调试格式(并且PDB正在开发中,并且在lldb-3.9.1(这是一个相当老的lldb)中不存在。)

我还没有尝试过在macOS上编译.NET应用程序,因此我不知道它为调试信息提供了哪些选项。您需要先弄清楚。