使用LLDB(OSX)调试C代码

时间:2017-03-03 21:08:20

标签: c macos debugging segmentation-fault lldb

我在LLDB上真的很新。我试图弄清楚为什么我的C应用程序有时会破坏分段错误。

我用-g编译了我的应用程序并启动了lldb指向二进制文件。所以我用“运行”代码运行应用程序,当它崩溃时,LLDB向我显示消息:

* thread #1: tid = 0x8817, 0x00007fffae0feb52 libsystem_c.dylib`strlen + 18, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00007fffae0feb52 libsystem_c.dylib`strlen + 18
libsystem_c.dylib`strlen:
->  0x7fffae0feb52 <+18>: pcmpeqb (%rdi), %xmm0
    0x7fffae0feb56 <+22>: pmovmskb %xmm0, %esi
    0x7fffae0feb5a <+26>: andq   $0xf, %rcx
    0x7fffae0feb5e <+30>: orq    $-0x1, %rax

我看到一个“教程”里面的人和我做了同样的事情,但是对于他来说,LLDB展示了他的C源代码并指出了崩溃的方向。对我来说,我只能看到这个我无法追踪的装配十六进制。

我做错了什么?

谢谢你们。

编辑:

忘了说我的应用程序每秒只在终端上打印c *字符。有时需要几分钟才能崩溃,有时会在几小时后崩溃。

0 个答案:

没有答案