91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VS 0xC0000005 運行錯誤分析

發布時間:2020-06-24 03:34:25 來源:網絡 閱讀:7827 作者:fengyuzaitu 欄目:編程語言

0xC0000005: 讀取位置 0x22203A22 時發生訪問沖突

場景

   網絡傳輸過來的,由于采用了qpid-cpp庫,獲取到的是request.getContent()的是string類型的數據類型,然后通過c_str函數,獲取到字符串,保存在一個char szBuffer[1024]數組內,在定義的類,調用析構函數退出導致程序崩潰


原因

    通過strcpy拷貝字符串到szBuffer數組,發生了數組的越界,因為字符串的長度是1159


提醒

    目前已經出現過兩次的0xC0000005崩潰信息

1 訪問一個釋放的空指針,在一個遞歸的邏輯中

2 strcpy拷貝字符串,發生數組越界


xC0000005:讀取位置oxfeeefeee時發生訪問沖突

問題

    test.exe 中的 0x1021af50 (zlib.dll) 處未處理的異常: 0xC0000005: 讀取位置 0xfeeefeee 時發生訪問沖突

    

分析

    代碼中斷于獲取list的迭代指針:

 #if _HAS_ITERATOR_DEBUGGING || _SECURE_SCL

iterator begin()

{// return iterator for beginning of mutable sequence

return (iterator(_Nextnode(_Myhead), this));

}

懷疑1:是否是堆棧溢出?不可能沒有占用多少空間

懷疑2:是否迭代書寫問題?不可能在其他的程序運行良好

現象:調用堆棧的顯示區域,提示:feeefeee()

進行debug設置:調試菜單下,勾選所有的異常,在調試的模式下,重新編譯。這一次指向list迭代之前的一行代碼,這行代碼進行了字符串的拷貝,觀察賦值指針,pszName的值是0xfeeefeee:錯誤的指針。


補充知識

FEEEFEEE微軟的HeapFree函數用該值來標記被釋放了的堆內存


經過上面的知識,可以知道任何的一塊內存分配,都會在字符串中填充0xfeeefeee作為內存沒有釋放的標志,當調用函數釋放內存的時候,就會首先檢查指針的內容是否包含該標志位,如果沒有該標志位,就會出現異常中斷的情況。pszName分配的內存已經被釋放,導致了程序中斷。在項目中,采用了遞歸的算法進行了多次的搜索,在函數進行退出遞歸的時候,該指針已經指向了一個已經釋放的內存,所在在進行遞歸的過程中,將已有的內容拷貝出來,防止在遞歸的過程中被釋放,從而解決了問題。




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛曲县| 通州区| 孟津县| 盐池县| 吴堡县| 叶城县| 谢通门县| 新和县| 嵊州市| 三都| 吴川市| 门头沟区| 麻江县| 龙井市| 山阴县| 浦北县| 女性| 莱州市| 布拖县| 怀安县| 阜宁县| 霍山县| 田东县| 西城区| 乌拉特前旗| 彰化县| 威宁| 建湖县| 广灵县| 方正县| 连山| 忻城县| 曲阜市| 五莲县| 彰武县| 化德县| 新营市| 遂川县| 和顺县| 东安县| 苗栗市|