valgrind

    -3熱度

    1回答

    當內存調試使用Valgrind因爲我通過了以下錯誤迎來了通常的原因我的程序(有很多人): ==9895== Invalid read of size 4 ==9895== at 0x10D6C1: Shell (vshell.c:903) ==9895== by 0x113608: exec_wrap (vib.c:111) ==9895== by 0x111E8A: sm_thread (

    1熱度

    2回答

    我書面方式一些簡單的代碼在C測試一些存儲器分配和指針: #include <stdlib.h> #include <stdio.h> int *randomAlloc(int n) { int *address = NULL, i = 0; address = malloc (n * sizeof(int)); for (i = 0;

    0熱度

    1回答

    我有一個程序。當它運行正常時,我的硬編碼峯值內存檢查器報告1G。當它與地塊運行,我的檢查報告2.2G ... 我的峯值內存檢查是不是一個聰明的檢查,我只把它在硬編碼的地方,以獲得當前的內存足跡。我想知道如果地塊可以導致更多的內存使用程序。

    1熱度

    1回答

    沒有valgrind,我怎麼能找到在哪裏分配了大塊內存(例如malloc?)是否有可能爲大內存分配設置gdb中斷點? 我不能Valgrind的使用,因爲一些依賴庫禁止使用的valgrind的(將Valgrind的崩潰,因爲它不承認其特殊的堆疊)

    -3熱度

    1回答

    需要幫助我的代碼。我使用valgrind運行程序,並得到錯誤: 「地址0x520448a在10個大小爲alloc'd的塊之後爲0個字節」。此代碼從一個文件中獲取單詞和每個單詞保存到具有性能char *word一個結構和int line_number: void process_file_words(FILE *exist_file, struct file_word *file_words){

    0熱度

    1回答

    我目前正在Ubuntu 16.04虛擬機上開發一個C++應用程序。我需要測量應用程序(堆棧和堆)的總內存使用情況,以便找出其最大值範圍。因爲我在內存分析是很新的,我結束了使用的valgrind如下:命令: valgrind --tool=massif --stacks=yes ./c++_app ms_print massif.out.<PID> 在解碼文件我得到的12.5 MB的尖峯上的相

    2熱度

    2回答

    不知何故Valgrind的顯示錯誤在我的程序的第一行: int main(int argc, char** argv) { int i, r; sscanf(argv[1], "%d", &r); return 0; } Valgrind的報告: ==18674== Invalid read of size 1 ==18674== at 0x4ECB1A0:

    0熱度

    1回答

    我有下面的代碼,當在valgrind下運行時,仍然表示某些塊可以訪問。雖然代碼沒有任何明確的泄漏。 這是爲什麼發生。 請幫忙? 的valgrind跡是 ==5059== 32 bytes in 1 blocks are still reachable in loss record 1 of 1 ==5059== at 0x4C2C20C: operator new(unsigned long)

    5熱度

    2回答

    Code like this是未定義的行爲,因爲它訪問不在範圍內的局部變量(其生存期已結束)。 int main() { int *a; { int b = 42; a = &b; } printf("%d", *a); // UB! return 0; } 我的問題:是否有自動檢測這樣的錯誤的好技術?它似乎應該是可檢

    1熱度

    1回答

    腐敗我有給定爲 *** Error in `./match': malloc(): memory corruption: 0x0000000001036470 *** Aborted (core dumped) 奇怪發生這種情況不具有約30-40要素的輸入之前在我的代碼的存儲器損壞。 因爲我無法弄清楚發生了什麼,所以我做了一些研究,並認爲valgrind是個不錯的選擇。我很新進入這個讓我通過