【发布时间】:2016-04-08 03:35:31
【问题描述】:
我有一个崩溃的单元测试(使用Check)。如何生成核心转储以便调试?
$ make check
.
.
.
XXX.c:216:E:Core:test01XXX:0: (after this point) Received signal 11 (Segmentation fault)
(第 216 行只是 test01XXX 的开头,不是实际的代码行)
我试过ulimit -c unlimited但是没有核心文件。
编辑:我认为这不是一般编写核心文件或在磁盘上找到它的问题。在同一个目录下,我可以kill -SEGV一个进程,它会生成一个核心文件:
$ ls core*
ls: cannot access core*: No such file or directory
$ cat crash.c
int main()
{
return *(int *)0;
}
$ gcc -o crash crash.c
$ ./crash
Segmentation fault (core dumped)
$ ls core*
core.121934
我认为问题在于 Check 捕获了 SIGSEGV,我只需要以某种方式对其进行不同的配置。
【问题讨论】:
-
什么给
find . -name "*core*" -print? -
@user1034749 没有结果
标签: c unit-testing segmentation-fault coredump