我第一次使用LLDB。我正在运行MacOSX Mavericks。出于某种原因,我无法让LLDB打印任何源代码行。相反,输出似乎是汇编指令集。我如何"修复"这样它会显示代码吗?
[c_src]> lldb a.out
当前可执行文件设置为' a.out' (x86_64的)。
(lldb)断点设置-n main
断点1:其中= a.out main,address = 0x0000000100000d60
(lldb)运行
过程54010启动:a.out(x86_64)
过程54010停止了 *线程#1:tid = 0x202742,0x0000000100000d60 a.outmain, queue = com.apple.main-thread, stop reason = breakpoint 1.1 frame #0: 0x0000000100000d60 a.out
主体
a.out`main: - > 0x100000d60:pushq%rbp 0x100000d61:movq%rsp,%rbp 0x100000d64:subq $ 2032,%rsp 0x100000d6b:movq 4766(%rip),%rax; (void *)0x00007fff72d37420:__ stack_chk_guard
(lldb) s
过程54010停止 *线程#1:tid = 0x202742,0x0000000100000d61 a.out
main + 1, queue = 'com.apple.main-thread, stop reason = instruction step into
main + 1 a.out`main + 1:
frame #0: 0x0000000100000d61 a.out
- > 0x100000d61:movq%rsp,%rbp
0x100000d64:subq $ 2032,%rsp
0x100000d6b:movq 4766(%rip),%rax; (void *)0x00007fff72d37420:__ stack_chk_guard 0x100000d72:movq(%rax),%rax
我试图获得" s"命令显示它在代码中的步骤。
答案 0 :(得分:2)
看起来您还没有使用调试信息构建a.out。例如,如果lldb有a.out的调试信息,它会在报告main的断点时打印源行。
如果您手动构建a.out,请记住-g标志。如果您使用的是Xcode,请务必将调试格式设置为DWARF。