2012-08-27 27 views
0

我想在我的C++程序(在Linux-x64上运行)中使用Valgrind来调试内存问题。我的程序输出一个更大的程序使用的.so库。调用不是通过命令行,所以我不能用下面的命令来运行Valgrind的图书馆 -在未从命令行调用的程序中使用Valgrind

valgrind --leak-check=yes myprog arg1 arg2 

我怎么能在我的图书馆使用Valgrind的调试内存问题?

+0

我不认为你只能测试图书馆。我认为你应该写一些测试,并将它们作为_program运行,并传递给'valgrind'。我没有那么多'valgrind'的经验,但我仍然认为这是唯一的方法。 –

回答

0

似乎有是两个方案涉及:

  1. 程序创建共享对象。要用valgrind运行它,你可以将它包装在一个shell脚本中以用valgrind调用它。
  2. 加载共享对象的程序。你不能用valgrind运行一部分程序,也就是你的共享对象。你需要用valgrind运行整个程序。

您应该着眼于创建运行代码的合理测试用例,而不依赖于“更大的程序”并分析它们。