LLDB终端输出

时间:2014-12-14 13:43:46

标签: macos debugging osx-mavericks lldb

我第一次使用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.out main, 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
frame #0: 0x0000000100000d61 a.out
main + 1   a.out`main + 1:
   - > 0x100000d61:movq%rsp,%rbp
    0x100000d64:subq $ 2032,%rsp
    0x100000d6b:movq 4766(%rip),%rax; (void *)0x00007fff72d37420:__ stack_chk_guard     0x100000d72:movq(%rax),%rax

我试图获得" s"命令显示它在代码中的步骤。

1 个答案:

答案 0 :(得分:2)

看起来您还没有使用调试信息构建a.out。例如,如果lldb有a.out的调试信息,它会在报告main的断点时打印源行。

如果您手动构建a.out,请记住-g标志。如果您使用的是Xcode,请务必将调试格式设置为DWARF。