memory-corruption

    1熱度

    1回答

    我正在運行安裝有FreeDOS的虛擬機(使用Oracle VM VirtualBox)。 當我進入DJGPP IDE(稱爲「RHIDE」)並運行一次應用程序後,我無法再運行任何東西,當我退出IDE時,出現一條消息,提示「dos mem corrupt」和「PANIC: MCB鏈損壞「: 出現這種情況每程序我從RHIDE運行,運行相同程序‘從FreeDOS的命令行手動’產生沒有這樣的問題。 在每次調

    0熱度

    1回答

    我們試圖調查應用程序上的內存損壞,我們看到的確切問題可以在應用程序的實時內存中看到(即已添加的調試代碼顯示已損壞信息),但是當我們仔細查看在這一點上獲得的核心轉儲時,數據沒有發生損壞。 根據我對核心轉儲過程的基本理解,這可能是由於操作系統刷新了每個緩衝區,完成了部分寫入操作等。 任何人都可以詳細瞭解究竟發生了什麼,如果有反正確定是什麼導致腐敗? 的mprotect()阻止所有寫操作,而不僅僅是非所

    10熱度

    1回答

    我看過this線程。我的情況稍有不同,我正在努力弄清楚"this"指針是如何被損壞的。 我使用的Qt 4.6.2框架,使用他們的QTreeView與我自己的模型。我得到的回溯(86幀長,遞歸很多,這就是爲什麼我沒有粘貼整個東西,它在這個pastebin只涉及到他們的代碼。 它終於在QBasicAtomicInt中的某些彙編器上segfaults: DEREF,但很明顯,它已經死了進一步下跌,證明這

    1熱度

    1回答

    我在我的項目中有以下代碼。 g(const string& str) { printf("%s", str.c_str()); } f() { string str("whatever"); g(str); } 它是非常大的代碼的一部分。 g()在dll中並且api被導出。 f()是可執行文件的一部分。此代碼用於正常工作。但是現在它只適用於調試配置而

    0熱度

    1回答

    這裏的目標是讓指針的工作方式類似於2D矩陣。我測試了以下代碼,用於創建指針和整數指針數組。它編譯和運行良好。 (這是一個簡化版本,我已經試過分配/打印值mymatrix[x][y],它工作正常。) #include <iostream> int **mymatrix; int main(int argc, char* args[]){ mymatrix = new int*[10

    2熱度

    4回答

    的代碼的運行時間檢測: int *ptr = new int[10]; int *q = ptr; delete q; 沒有任何問題(沒有運行時錯誤)工作正常。 但是,下面的代碼: int *ptr = new int[10]; int *q = ptr; q++; delete q; 導致運行時錯誤。 我正在使用Microsoft Visual Studio-8和Win-7作爲

    0熱度

    1回答

    我已經閱讀了大量關於內存損壞的文章,看起來它可能是一個相當難以解決的問題。當我在我的linux機器上運行我的代碼時,它運行良好,valgrind不報告任何泄漏或錯誤。但是,當我使用VS2008在我的實驗室的Windows機器上運行代碼時,出現錯誤的alloc錯誤,使用_RAISE(nomem)停止。這對我來說似乎很奇怪,因爲我會期望valgrind能夠抓住它。 void *__CRTDECL op

    7熱度

    1回答

    根據2008年的帖子(我現在找不到它),glibc heap check不適用於多線程環境。現在是2010年的情況嗎? 默認啓用堆檢查嗎? (gcc 4.1.2)?我沒有設置MALLOC_CHECK_,不知道調用mcheck(),但仍然有時會用backtrace獲得雙免費的glibc錯誤。也許它是由一些編譯標誌啓用的?

    1熱度

    3回答

    請看看這段代碼 int i = 10; //line 1 int *p = &i; //line 2 delete p; //line 3 cout << "*p = " << *p << ", i = " << i << endl; //line 4 i = 20; //line 5 cout << "*p = "

    3熱度

    4回答

    嗨我不知道是否有任何現成的函數,我可以調用打印所有的malloc數據結構,以便我可以看到哪個內存分配給哪個變量? 我有這個內存損壞,當我釋放一個變量它抱怨,但我不知道哪個變量是相鄰的。 謝謝!