Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

linux coredump

作者:唯憾梦倾城   发布日期:2025-11-22   浏览:105

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

void handle_sigsegv(int sig) {
    printf("Caught signal %d\n", sig);
    // 这里可以添加更多的处理逻辑,比如记录日志等
}

int main() {
    // 设置信号处理器,捕获SIGSEGV信号(段错误)
    signal(SIGSEGV, handle_sigsegv);

    // 故意制造一个段错误
    int *ptr = NULL;
    *ptr = 10;  // 这将导致程序崩溃并生成coredump

    return 0;
}

解释说明:

  1. 信号处理器:我们使用 signal(SIGSEGV, handle_sigsegv); 来设置一个信号处理器,当程序遇到段错误(SIGSEGV)时会调用 handle_sigsegv 函数。
  2. 制造段错误:通过将指针 ptr 设为 NULL 并尝试解引用它,程序会触发段错误。这通常会导致程序崩溃,并在启用了 coredump 的系统上生成 core 文件。
  3. coredump:core 文件是程序崩溃时内存状态的快照,可以帮助开发者调试问题。要在 Linux 系统上启用 coredump,可以使用以下命令:
    ulimit -c unlimited

    这将允许生成无限大小的 core 文件。

如果你只是想查看如何生成 coredump 而不处理信号,可以省略信号处理器部分,直接运行程序即可。

上一篇:linux改ip

下一篇:linux route add

大家都在看

linux常用命令查询端口是否正常

linux 发送邮件

linux长ping命令

linux groupadd

linux关机命令行

linux重启oracle命令

linux把一个文件夹移动到另一个文件夹里

linux查看系统运行时间

linux搭建sftp

linux 重启网络命令

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站