Exemple #1
0
void PrintSigno(int signo)
{
    static int i = 0;
	printf("\n\n=========>>>catch signal %d (%s) i = %d <<<=========",
	signo, (char *)strsignal(signo), i++);
	printf("\nDump stack start...");
	DumpBacktrace();
	printf("\nDump stack end...");

}
Exemple #2
0
void RegSignal()
{
	signal(SIGINT, SignalHander);
	signal(SIGSEGV, SignalHander);
	signal(SIGUSR1, SignalHander);
	printf("\nCurrent function calls list is: ");
	printf("\n----------------------------------");
	DumpBacktrace();
	printf("\n----------------------------------\n");

}
Exemple #3
0
void SignalHander(int signo)
{
	printf("\n\n=========>>>catch signal %d (%s) <<<=========",
		signo, (char *)strsignal(signo));
	printf("\nDump stack start...");
	DumpBacktrace();
	printf("\nDump stack end...");
	/* 恢复并发送信号 */
	signal(signo, SIG_DFL);
	raise(signo);

}
Exemple #4
0
 void Abort() {
   DumpBacktrace(stderr);
   fflush(stderr);
   ABORT_NO_BACKTRACE();
 }
Exemple #5
0
void demo(int n) { return n == 0 ? DumpBacktrace(0) : demo(n - 1); }