我正在寫一個使用winpcap發送RAW Socket的程序,一切看起來都OK,數據包已經成功發送。但是當發送行爲已經結束,則Windows顯示一個對話框,告訴我:主函數返回導致異常
SendRawSocketsConsole.exe has stopped working
和細節是:
Problem signature:
Problem Event Name: APPCRASH
Application Name: SendRawSocketsConsole.exe
Application Version: 0.0.0.0
Application Timestamp: 4f51de63
Fault Module Name: ntdll.dll
Fault Module Version: 6.1.7600.16915
Fault Module Timestamp: 4ec49caf
Exception Code: c0000005
Exception Offset: 00055401
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 2052
Additional Information 1: e8ad
Additional Information 2: e8adce1c2b9e7be834b4063ac3c53863
Additional Information 3: e8ad
Additional Information 4: e8adce1c2b9e7be834b4063ac3c53863
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\windows\system32\en-US\erofflps.txt
我調試的程序,發現程序在該行終於停了下來( ):
if (pHead == NULL)
{
*errno_tmp = ENOMEM;
RTCCALLBACK(_RTC_FuncCheckSet_hook,(1));
}
其dbgheap.c
,和errno_temp
值是零,這引起了錯誤,我不知道什麼情況下可能會導致錯誤,我試圖建立release
而不是debug
,但仍然失敗,任何人都可以提供任何想法?任何幫助讚賞。即時通訊使用VS2008和Win7 :)
崩潰像這通常預示着某種內存損壞的地方在你的程序。檢查您的代碼是否存在與動態內存相關的越界訪問和其他錯誤。 – ComicSansMS 2012-03-03 09:56:40
感謝您的回覆,但是當我使用VC++ 6.0編譯程序時,沒有發生任何錯誤,它很奇怪@ComicSansMS – Searene 2012-03-03 10:27:03
這是典型的這種錯誤。你可能在VC6中很幸運,它沒有觸及任何重要的數據。這就是讓他們很難調試的原因:你永遠無法確定他們隱藏的地方。 – ComicSansMS 2012-03-03 10:35:16