2011-08-11 20 views
1

是否有可能獲得源代碼覆蓋(就像它通過gcov完成),編譯時沒有-pg(FIX,而不是-pg真的,但fprofile-arcsftest-coverage,對不起)?我想在不重新編譯的情況下獲得此內容,例如用valgrind,它可以在運行時編寫程序。我可以承受很慢的執行速度(高達1000倍的減速)。得到一個沒有重新編譯它的linux程序的覆蓋

我需要的是每個源代碼行的標誌:「這行是否執行」。我需要確切的覆蓋範圍(不是分析)和每一行(不是函數)。

+0

爲什麼不能用'-g'重新編譯?如果它在生產中,沒有任何理由爲什麼沙箱不能重新編譯它,連接模擬輸入,然後分析...... – wallyk

+0

wallyk,'-pg'和'-g'是不同的選項。重新編譯這個項目非常緩慢和困難。但我只想涵蓋它的一些部分。 – osgx

回答

2

有這樣做的沒有標準的方式。它理論上可行,但我不知道有任何工具可以幫助你做到這一點。

+1

但是valgrind能夠動態地重新編譯一個程序......所以它可以像「-pg」那樣對其進行檢測。 – osgx

+0

此外,用戶空間(應用程序級別)仿真的qemu可以收集覆蓋信息。 – osgx

相關問題