在valgrind执行期间抛出异常,但在直接调用程序时抛出异常

时间:2012-02-23 14:27:43

标签: gcc valgrind

我在一个非常奇怪的问题中运行,我知道从远处诊断可能很难。但任何提示都会有所帮助。

话虽如此,这是我的问题:

当我运行valgrind来执行我的程序时,会抛出异常。但是,当我直接从shell调用程序时,它运行正常。

我试图使用valgrind的vgdb来研究为什么会发生这种异常。但这只允许我在异常发生后调查变量,因为我没有找到一个好的方法来启动gdb后我将它附加到valgrind(不使用continue)并逐步执行代码。

我已经尝试重新创建抛出异常的代码段但使用相同的变量内容,我不会触发异常。

我应该补充一点,我在使用Ubuntu 11.10和gcc 4.6.1,valgrind 3.7.0,gdb 7.3的VMWare Workstation 8.0.1虚拟机上执行此操作。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

只是一些想法:

    当您通过valgrind调用程序时,
  1. 缺少命令行参数 - 也许有一种特殊的方法可以将这样的参数传递给您的程序

  2. 程序在valgrind中执行时的不同运行时行为。 valgrind是一种调试器,因此可能会以不同的顺序调度线程,并且代码的某些部分可能运行得更慢。也许这会触发像竞争条件这样的错误。

  3. 是否可以在此处发布一些代码 - 特别是在引发异常的位置附近?