【发布时间】:2012-01-17 08:04:13
【问题描述】:
有可能吗?
我找到了 Visual Studio Print n levels of callstack?的解决方案
【问题讨论】:
标签: xcode runtime logging callstack
有可能吗?
我找到了 Visual Studio Print n levels of callstack?的解决方案
【问题讨论】:
标签: xcode runtime logging callstack
要在运行时以编程方式打印回溯,您可以使用此函数:
#import <execinfo.h>
void PrintBacktrace ( void )
{
void *callstack[128];
int frameCount = backtrace(callstack, 128);
char **frameStrings = backtrace_symbols(callstack, frameCount);
if ( frameStrings != NULL ) {
// Start with frame 1 because frame 0 is PrintBacktrace()
for ( int i = 1; i < frameCount; i++ ) {
printf("%s\n", frameStrings[i]);
}
free(frameStrings);
}
}
【讨论】:
使用bt(或gdb 控制台中的backtrace 命令)。这里是more info 命令用法。
要打印多个顶层调用堆栈,您可以使用bt n
【讨论】: