2008-12-11 51 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

相關問題