如何在lldb中增加包络的缓冲区大小?

时间:2015-02-16 01:57:10

标签: lldb backtrace

使用lldb调试程序时,程序崩溃并打印" bt"回溯。但即使我一直滚动到屏幕顶部,我仍然没有看到程序崩溃的原因,因为回溯过大。

1 个答案:

答案 0 :(得分:0)

如果您在Mac OS X上使用Terminal.app,可以通过打开终端的“首选项”窗口来增加回滚缓冲区的大小,单击“配置文件”选项卡,会出现一系列按钮在右侧,“文本/窗口/外壳/键盘/高级”。在“Scrollback”下的“Window”下,您可以选择多个行,或者Terminal是否应该将回滚缓冲区限制为多行。

此外,在lldb中,bt命令接受一个参数,该参数是要显示的堆栈帧数。这听起来像是第一个几个堆栈帧,你很难看到,所以这正是你想要的。例如,我在bt只显示前两个堆栈帧:

(lldb) bt
* thread #1: tid = 0x09bd, 0x00007fff888194de libsystem_kernel.dylib`mach_msg_trap + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * #0: 0x00007fff888194de libsystem_kernel.dylib`mach_msg_trap + 10
    #1: 0x00007fff8881864f libsystem_kernel.dylib`mach_msg + 55
    #2: 0x00007fff85c75b34 CoreFoundation`__CFRunLoopServiceMachPort + 212
    #3: 0x00007fff85c74ffb CoreFoundation`__CFRunLoopRun + 1371
    #4: 0x00007fff85c74858 CoreFoundation`CFRunLoopRunSpecific + 296
    #5: 0x000000010148f497 Dock`___lldb_unnamed_function2$$Dock + 1202
    #6: 0x00007fff8e7fd5c9 libdyld.dylib`start + 1
    #7: 0x00007fff8e7fd5c9 libdyld.dylib`start + 1
(lldb) bt 2
* thread #1: tid = 0x09bd, 0x00007fff888194de libsystem_kernel.dylib`mach_msg_trap + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * #0: 0x00007fff888194de libsystem_kernel.dylib`mach_msg_trap + 10
    #1: 0x00007fff8881864f libsystem_kernel.dylib`mach_msg + 55
(lldb)