小编Puf*_*ang的帖子

如何使用lldb高效地回溯段错误?

我是 LLDB 的新手(实际上是大多数命令行工具的新手)。当我按照这篇极其简单且有用的文章来回溯段错误错误时,我发现使用 LLDB 在 Mac OS X 10.10 上的输出与使用 gdb 作为调试器的作者的输出不同。

为了让问题更清楚。当我使用 lldb 运行上面文章中的相同代码,遇到段错误错误,并使用btlldb 命令时,我得到了这条消息。

* thread #1: tid = 0x208541, 0x00007fff8869a05a libsystem_platform.dylib`_platform_memmove$VARIANT$Unknown + 186, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x00007fff8869a05a libsystem_platform.dylib`_platform_memmove$VARIANT$Unknown + 186
    frame #1: 0x00007fff8fc08866 libsystem_c.dylib`fgets + 243
    frame #2: 0x0000000100000f34 sf`main + 68
    frame #3: 0x00007fff8e6535c9 libdyld.dylib`start + 1
Run Code Online (Sandbox Code Playgroud)

由于我将可执行文件命名为“sf”(段错误的缩写),因此我按照文章中的想法并使用了f 2命令。

现在事情出了问题,因为我收到了这条消息。

frame #2: 0x0000000100000f34 sf`main + 68
sf`main:
    0x100000f34 <+68>: leaq   0x5f(%rip), …
Run Code Online (Sandbox Code Playgroud)

c lldb

6
推荐指数
1
解决办法
8732
查看次数

标签 统计

c ×1

lldb ×1