亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

长兴县| 陆川县| 锡林郭勒盟| 绥江县| 白城市| 隆回县| 南康市| 奎屯市| 罗平县| 高邑县| 禹城市| 定边县| 唐海县| 罗江县| 聂拉木县| 阜宁县| 桂东县| 永昌县| 乌兰察布市| 中牟县| 桐柏县| 蓝山县| 衡阳县| 咸丰县| 东兴市| 株洲县| 明水县| 彩票| 都兰县| 电白县| 于都县| 金湖县| 清徐县| 象州县| 长治县| 若尔盖县| 民权县| 呼图壁县| 巴东县| 嘉义县| 太谷县|