valgrind

    1熱度

    3回答

    我正在嘗試編寫一個接收消息並讀取它們的程序。根據這些消息是什麼,然後打印出一些文本。因爲這是valgrind警告我的代碼的一部分,所以我把它留在那裏讓你看。據我在網上閱讀,應該有一個初始化問題,但我不知道在哪裏。 int main(int argc, char* argv[]) { int oprimek = 0; char name[] = "/cmdQueue";

    7熱度

    1回答

    想象這樣的代碼: string f() { string r = "ab"; return r; } int main() { const char *c = f().c_str(); printf("%s.\n", c); return 0; } 該代碼可能會崩潰,是嗎?因爲c指向的字符串被破壞。但是,通過Valgrind運行它不會

    0熱度

    1回答

    我正在將庫連接到opencv庫。我注意到當我爲該庫運行單元測試可執行文件(使用GTest)時,該valgrind報告內存泄漏/條件跳轉或移動取決於未初始化的值,即使測試完全沒有做任何事情(只是空的測試方法)。 我將這個問題追溯到我的CMakeLists.txt中的單行 - 當我刪除與opencv的鏈接時,內存泄漏消失。這是releavant片段: find_package(OpenCV REQUI

    0熱度

    2回答

    編輯內存空間:這個問題是不是我還以爲是,讀我(長)問題將免去你前一段時間檢查答案。 我一直valgrinding學校我的小C++項目(基本上是語言檢測器),但有一組指針我仍然有根據的valgrind的問題。我認爲這個問題很經典,可以在下面繼續:當我(我想)沒有選擇時,我應該如何釋放一個變量,然後在另一個函數中插入? 這裏有兩個功能,這使我這個問題的相關部分。基本上,get_modeles_name

    1熱度

    1回答

    我有一個程序,它使用fork創建另一個進程,並幾乎直接調用可執行文件的execv。我想檢查子進程上的內存泄漏。由於主進程啓動了許多其他可執行文件並運行了更多的腳本(這些腳本太難以跟蹤使用-trace-children選項),我想使用execv從主進程內部調用valgrind,並通過可執行作爲參數。 我的代碼是這樣的 - #include <stdio.h> #include <string.h>

    0熱度

    1回答

    當使用helgrind與C++ 11期貨和打包任務時,我認爲我認爲是誤報。以下是CentOS6系統上的gcc-6.3.0和valgrind-3.12。我試圖按照文檔中的建議來提供註釋。我做錯了什麼?我該怎麼做才能避免誤報,還是真的有比賽? drdws0134$ cat hthread.cpp #include <valgrind/helgrind.h> #define _GLIBCXX_SYN

    0熱度

    1回答

    我想記錄valgrind memcheck的xml和文本輸出結果。 我試過這個命令。 valgrind --tool=memcheck --xml=yes --log-file=TextLog.log --xml-file=XMLFile.log test 但只有XML文件written.text文件沒有數據..

    0熱度

    2回答

    我目前擁有Mac Sierra 10.12.3,而且我感到意外的是Valgrind儘管有最新版本,但並不兼容。 valgrind: mmap-FIXED(0x0, 253952) failed in UME (load_segment1) with error 12 (Cannot allocate memory). 我想知道是否有解決方案來解決這個問題或另一個調試器(gdb也不工作)。 我不

    0熱度

    1回答

    我試圖用Valgrind的地塊長時間監視進程的內存消耗。該過程是活動的,並在特定的時間間隔執行一些例行操作,我希望看到所有過程的內存消耗。 我啓動過程與: valgrind --tool=massif --trace-children=yes <program name> <arguments> 我的計劃是建立一個守護進程。 我看到massif爲主進程創建一個文件,幾乎立即退出,而另一個還活着

    4熱度

    2回答

    我試圖避免Valgrind的誤報,但我吸了atexit()和fork()的組合,儘管使用--trace-children=yes。我的代碼: #include <stdio.h> #include <unistd.h> #include <stdlib.h> static int * arr; static void cleanup() { free(arr); p