获取valgrind以生成核心文件

时间:2015-04-22 23:03:10

标签: debugging gdb valgrind core-file

我正在尝试调试一个我在程序中很少遇到的错误。 该程序在valgrind下运行

valgring --num-caller=50 testprog.out

我想仅在此程序遇到错误时生成核心文件。

我知道当我们从valgring遇到错误时有一个调用gdb的选项,但有没有办法给valgrind / gdb输入生成核心文件而无需人工干预?

我可以在文件中为gdb提供输入吗?

1 个答案:

答案 0 :(得分:0)

Valgrind应该能够生成vgcore。程序崩溃时除非未启用核心转储(如果您使用的是linux,请检查ulimit)

如果错误不会导致程序崩溃,那么您可以引发SIGABRT / SIGSEGV /等。错误块内的信号(参见How to programmatically cause a core dump in C/C++)。

示例:

if (foo() == ERR_CODE_FAILURE) // Your error is foo()
{
    raise(SIGABRT);
}