假设我们已经自动化了Valgrind测试设置,并配置了最大的诊断程序(--leak-check=yes --track-origins=yes
等。)但是,在某些测试中,由于某些不确定的错误,SIGGSGV可能会使valgrinded进程崩溃。在那种情况下,导致SIGSEGV的即时诊断很有用,但是Valgrind不会停在那里并将每个活动内存分配作为泄漏转储,成千上万的泄漏-在随机SIGSEGV的情况下是没有用的。
是否可以将Valgrind配置为
编辑:2011年,此问题已记录在Valgrind错误跟踪程序中:https://bugs.kde.org/show_bug.cgi?id=265371
答案 0 :(得分:1)
valgrind泄漏搜索无法仅针对“程序正常退出”被激活 并为“崩溃退出”停用。
您也许可以使用--vgdb-error = 0获得此结果, 然后(使用脚本):使用gdb + vgdb连接到valgrind gdbserver, 在gdb中捕获您想要的信号,并在gdb杀死进程时 接收到信号:valgrind gdbserver具有命令v.kill,该命令将 使valgrind退出而不执行其通常的“寿命终止”泄漏搜索。