#include<execinfo.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
VOID PrintBacktrace(VOID)
{
#define BTSIZE 100
int j, nptrs;
void *buffer[100];
char **strings;
nptrs = backtrace(buffer, BTSIZE);
strings = backtrace_symbols(buffer, nptrs);
if (strings == NULL) {
return;
}
CCError("Start Print Backtrace");
for (j = 0; j < nptrs; j++)
CCError("%s",strings[j]);
CCError("End Print Backtrace");
free(strings);
}
makefile
-rdynamic
本文展示了一段使用C++实现的回溯打印代码,通过backtrace和backtrace_symbols函数获取并打印当前进程的调用堆栈信息。适用于调试和错误报告场景。
1万+

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



