嗨,我是valgrind的新手。我知道如何從命令行運行可執行文件的valgrind。但是,你如何運行服務器進程,如apache/myqld /交通服務器等valgrind ..valgrind在服務器進程
我想在交通服務器上運行valgrind(http://incubator.apache.org/projects/trafficserver.html)來檢測我寫的插件發生的內存泄漏。
有什麼建議嗎?
感謝, pigol
嗨,我是valgrind的新手。我知道如何從命令行運行可執行文件的valgrind。但是,你如何運行服務器進程,如apache/myqld /交通服務器等valgrind ..valgrind在服務器進程
我想在交通服務器上運行valgrind(http://incubator.apache.org/projects/trafficserver.html)來檢測我寫的插件發生的內存泄漏。
有什麼建議嗎?
感謝, pigol
你必須開始Valgrind的控制下的服務器。只需採取服務器的正常啓動命令,並將其添加到valgrind
。
Valgrind將附加到您的主「服務器」進程產生的每個進程。當每個線程或進程結束時,Valgrind會輸出它的分析結果,所以我建議將它輸出到一個文件中(不知道它是否出現在stderr或stdout上)。
如果您的常用啓動命令是/usr/local/mysql/bin/mysqld
,服務器而不是valgrind /usr/local/mysql/bin/mysqld
。
如果您通常使用腳本(如/etc/init.d/mysql start
)啓動服務,您可能需要查看腳本內部腳本以執行腳本的實際命令,然後運行腳本而不是腳本。
不要忘了將--leak-check=full
選項傳遞給valgrind以獲取內存泄漏報告。