使用lldb调试程序时,程序崩溃并打印" bt"回溯。但即使我一直滚动到屏幕顶部,我仍然没有看到程序崩溃的原因,因为回溯过大。
答案 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)