Valgrind下程序输出显着不同

时间:2016-07-21 22:19:47

标签: c valgrind

我有一个可执行文件我正在远程linux机器上运行。

当我正常运行可执行文件(./execute arg_one)时,程序在while循环中崩溃“./execute'错误:malloc():内存损坏(快速)”

但是,当我在最简单的valgrind(valgrind ./execute arg_one)下运行程序时,程序不会崩溃,一直运行到main,并实际产生正确的输出。

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:1)

有时会发生程序崩溃,但由于valgrind执行速度非常慢,因此valgrind可能会将其运行到最后,并且输出正确。但这并不意味着您的计划是正确的。您应该检查valgrind显示的错误/上下文,并在您希望程序运行时更正它们。