VALGRIND:如何将valgrind用于“ .so”库?

eli*_*nus 4 c c++ gcc valgrind

我需要在制作“ .so”的每个程序文件上使用valgrind吗?还是我们可以在“ .so”库上直接运行valgrind?请提供后续步骤。

hyd*_*yde 7

不直接。库没有开始执行库的入口点,并且valgrind仅检查实际执行的代码。

不过,如果要使用valgrind测试库,则有一种简单的方法。只需编写一个测试程序,它就可以使用库来测试要测试的库的部分和功能。然后valgrind

最好编写几个小型测试程序来测试不同的功能并使用模式,而不是编写一个试图在一次执行中测试所有内容的大型测试程序(更容易隔离valgrind发现的问题,运行起来更快)。


kel*_*tar 5

Valgrind会监视正在执行的代码。除非某些程序使用共享库,否则从不执行。如果某些代码从未执行过,则valgrind将永远不会注意到它。