程序崩溃时如何捕获错误?

时间:2015-02-24 16:59:33

标签: c

程序崩溃时如何捕获错误?

示例 - 崩溃时将Java错误日志写入文件。

我写了这段代码导致错误:

int * invalidPointer = NULL;
printf("%d\n", invalidPointer[0]);

java崩溃并将错误日志(hs_error_pid(pid).log)保存到文件中,我想处理用C编写的程序中的错误(不是在Java中,这只是示例)

第二个示例 - 当崩溃显示信息时Chrome,我们可以通过单击是重启浏览器。

1 个答案:

答案 0 :(得分:5)

虽然它是未定义的行为,但如果您遇到分段错误,可以使用此功能。

#include <signal.h>
#include <stdio.h>

void Segfault_Handler(int signo)
{
    fprintf(stderr,"\n[!] Oops! Segmentation fault...\n");
}

int main() {
    signal(SIGSEGV,Segfault_Handler);
    return 0;
}