Featured image of post 使用 prlimit 工具使进程生成 core 文件

使用 prlimit 工具使进程生成 core 文件

当在写程序时候,如果遇到野指针、数组索引错误等一些内存相关错误时,经常会出现段错误,而且没有提供其他信息……属于一种运行时的错误。

1
[1]    739596 segmentation fault  ./main

对于此,我们需要在编译时添加 -g 参数生成调试信息。以便使用 gdb 进行调试。
一般来说,运行程序是不会生成 core 文件的,我们需要对 shell 进行修改使得当发生段错误时候生成 core 文件。

1
prlimit --core=unlimited --pid=$$

这里使得当前 shell 运行程序生成 core 文件不限制,当我们再次运行后,报错另附了核心转储(core dumped):

1
[1]    739807 segmentation fault (core dumped)  ./main

当前目录生成了 core.739807
之后就可以使用 gdb 进行调试,比如当前 main 文件可以用 gdb main core.739807 进行调试。

最后的报错结果是数组的索引写错了……

萌ICP备20241614号