一、前置条件

1、 设置ulimit参数

  确保用户或者进程的ulimit参数(核心转储文件大小限制)允许生成core dump文件。使用`ulimit -c unlimited`来设置无限制,或者指定一个合适的大小。

ulimit -c unlimited

2、检查coredump文件路径

  确保‘/proc/sys/kernel/core_pattern’文件中定义了core dump文件的生成路径和文件名格式。

cat /proc/sys/kernel/core_pattern

二、kill命令生成(方式1)

  手动发送一个SIGSEGV信号给进程。

kill -SEGV <进程ID>

三、gdb生成(方式2 成功)

1、确保gdb调试器已经安装在系统上。

2、启动程序,确保它在运行中。

3、打开另一个终端窗口,运行gdb调试器。在命令行中输入以下命令:

gdb <程序名>

4、gdb调试器会附加到你的程序上并暂停它的执行。现在,使用以下命令来设置断点:

break <函数名> 或 break <行号>

    其中<函数名>是你想要设置断点的函数名称,或者<行号>是你想要设置断点的行号。

5、设置好断点后,使用“run”命令恢复程序的执行,程序将继续执行到达刚设置的断点处。

6、使用gdb的kill命令来发送信号给程序,使其崩溃。

signal 11

7、core_pattern查询到的路径下生成core文件。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐