2008-12-11 60 views
0

我需要检测我的Makefile是否在valgrind下运行(间接地,使用valgrind --trace-children = yes),我知道如何从C中执行它,但我还没有找到一种方法来从脚本执行它,如何检测在make文件或shell脚本中是否在valgrind下运行?

以前的答案仅适用于Linux。对于Mac OS X,我将在环境中grep for VALGRIND_STARTUP_PWD,除非有人有更好的主意。

回答

3

从壳:

grep -q '/valgrind' /proc/$$/maps && echo "valgrindage"

此确定是否预加载Valgrind的库中存在的处理的地址映射。这是合理有效,但如果你碰巧有一个非valgrind相关的图书馆共享'/ valgrind'绰号,那么你会得到一个误报(不太可能)。

[我从vg_preload改变grep的模式/ Valgrind的,因为在Debian/Ubuntu的测试显示,该库的名字是不同的,而Valgrind的的目录匹配是最有可能成功。]

+0

整洁。你知道名称是否改变了吗?在我的机器上有vgpreload条目但没有vg_preload。 – 2008-12-11 22:03:02

相关问题