获取valgrind生成核心文件
Get valgrind to generate a core file
我正在尝试调试一个我在程序中很少遇到的错误。
该程序在 valgrind
下 运行
valgring --num-caller=50 testprog.out
我只想在这个程序遇到错误时生成一个核心文件。
我知道有一个选项可以在我们从 valgring 遇到错误时调用 gdb,但是有没有办法在没有人工干预的情况下向 valgrind/gdb 提供输入以生成核心文件?
我可以在文件中为 gdb 提供输入吗?
Valgrind 应该能够生成 vgcore。当程序崩溃时。除非未启用核心转储(如果您使用 linux,请检查 ulimit)
如果错误没有导致程序崩溃,那么你可以提出一个SIGABRT/SIGSEGV/etc。错误块内的信号(参见 How to programmatically cause a core dump in C/C++)。
示例:
if (foo() == ERR_CODE_FAILURE) // Your error is foo()
{
raise(SIGABRT);
}
我正在尝试调试一个我在程序中很少遇到的错误。 该程序在 valgrind
下 运行valgring --num-caller=50 testprog.out
我只想在这个程序遇到错误时生成一个核心文件。
我知道有一个选项可以在我们从 valgring 遇到错误时调用 gdb,但是有没有办法在没有人工干预的情况下向 valgrind/gdb 提供输入以生成核心文件?
我可以在文件中为 gdb 提供输入吗?
Valgrind 应该能够生成 vgcore。当程序崩溃时。除非未启用核心转储(如果您使用 linux,请检查 ulimit)
如果错误没有导致程序崩溃,那么你可以提出一个SIGABRT/SIGSEGV/etc。错误块内的信号(参见 How to programmatically cause a core dump in C/C++)。
示例:
if (foo() == ERR_CODE_FAILURE) // Your error is foo()
{
raise(SIGABRT);
}