我正在编写一个使用winpcap发送RAW Socket的程序,一切似乎都好,数据包已成功发送。但是当发送行为结束时,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
而不是{ {1}},但仍然失败,任何人都可以提出任何想法吗?任何帮助赞赏。即时通讯使用VS2008和Win7:)
答案 0 :(得分:0)
重点是:seudo = new unsigned char(sizeof(P_HDR) + strlen(dump));
,应该是
seudo = new unsigned char[sizeof(P_HDR) + strlen(dump)];