0

我需要检测我的 Makefile 是否在 valgrind 下运行(间接地,使用 valgrind --trace-children=yes),我知道如何从 C 中执行此操作,但我还没有找到从脚本中执行此操作的方法,

较早的答案仅适用于 Linux。对于 Mac OS XI,除非有人有更好的主意,否则我会在环境中使用 grep 查找 VALGRIND_STARTUP_PWD。

4

1 回答 1

3

从外壳:

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

这确定 valgrind 预加载的库是否存在于进程的地址映射中。这是相当有效的,但如果你碰巧有一个共享“/valgrind”名字的非 valgrind 相关库,那么你会得到一个误报(不太可能)。

[我将 grep 模式从 vg_preload 更改为 /valgrind,因为在 Debian/Ubuntu 上的测试显示库名称不同,而 valgrind 的目录匹配最有可能成功。]

于 2008-12-11T21:31:04.933 回答