debug - 生成coredump¶
https://stackoverflow.com/questions/979141/how-to-programmatically-cause-a-core-dump-in-c-c
除了之前说要提前设置ulimit -c unlimited外才能生成core dump;基本上都需要在程序在段错误的时候才会自动生成core dump,我们也还有一个需求就是在程序运行的过程中,我也想让他生成core dump.
- 在代码层面上产生一个core dump
可以用代码动态检测程序的运行情况,发现有异常,可以通过代码的手段产生一个core dump
/**
* @brief 代码层面产生一个coredump文件
*/
void create_core_dump(void)
{
if (!fork()) {
fprintf(stderr, "Crash the app to core dump!\n");
int *invalid_ptr = NULL;
*invalid_ptr = 250;
}
}
- 用命令行发送信号给程序,让其强制退出
用命令行的方式,动态强制一个正在运行程序退出并产生一个core dump