linux怎么打印堆栈信息
在Linux中,可以使用以下几种方法来打印堆栈信息:
使用gdb调试器:
编译时添加-g
选项以启用调试信息。
运行程序时,在终端中输入gdb <可执行文件>
启动gdb调试器。
在gdb命令行中,输入run
命令来运行程序。
当程序崩溃或者需要打印堆栈信息时,输入bt
命令来打印堆栈信息。
使用backtrace函数:
在代码中包含<execinfo.h>
头文件。
调用backtrace
函数来获取堆栈信息。
使用backtrace_symbols
函数将堆栈信息转换为可读格式并打印出来。
以下是一个简单的示例代码:
#include <stdio.h>
#include <execinfo.h>
void printStackTrace() {
void* buffer[100];
int size = backtrace(buffer, 100);
char** symbols = backtrace_symbols(buffer, size);
printf("Stack Trace:\n");
for (int i = 0; i < size; i++) {
printf("%s\n", symbols[i]);
}
free(symbols);
}
void funcB() {
printStackTrace();
}
void funcA() {
funcB();
}
int main() {
funcA();
return 0;
}
编译运行上述代码后,会打印出堆栈信息。
阅读剩余
THE END