Java로 개발을 해본 개발자라면 프로그램에 문제가 발생되었을때 stack trace가 출력된다는데
상당한 매력을 느낀 개발자가 많을 것이라는 것이다.
이러한 출력이 C/C++에서도 구현이 된다면 얼마나 좋을까 하는 생각을 많이들 해봤을 것이다.
그래서 준비했다.. 즐겨 보시길~
#include <execinfo.h>
void debugTrace( int ndepth)
{
void *array[ndepth];
int size = backtrace( array, ndepth);
char **symbols = backtrace_symbols( array, size);
while ((--size) >= 0)
fprintf( stderr, " %2.i: %s\n", size + 1, symbols[size]);
}
이 함수를 호출하는 것 만으로 프로그램의 문제 발생시 stack trace가 화면에 출력된다.
그럼 어떻게 사용하느냐? 바로 signal이 발생될때 해당 함수를 호출하기만 하면 된다.
그럼 잘 사용해 보길~