#define BT_BUF_SIZE 4096
void PrintBackTrace() {
int j, nptrs;
void *buffer[BT_BUF_SIZE];
char **strings;
nptrs = backtrace(buffer, BT_BUF_SIZE);
strings = backtrace_symbols(buffer, nptrs);
if (strings == NULL) {
return;
}
for (j = 0; j < nptrs; j++)
printf("[backtrace] %s\n", strings[j]);
free(strings);
}
[DEMO] 打印backtrace
于 2023-02-20 16:58:39 首次发布
该代码定义了一个用于存储回溯信息的缓冲区,通过backtrace()函数获取调用栈指针,然后使用backtrace_symbols()转换成可读字符串进行打印,帮助调试程序。
58

被折叠的 条评论
为什么被折叠?



