2012-03-03 3 views
0

私はwinpcapを使用してRAWソケットを送信するプログラムを書いていますが、すべて正常と思われ、パケットは正常に送信されています。しかし、送信動作が終わったとき、Windowsは私に言ってダイアログを示していますmain関数の返り値は例外を発生させます

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の値がエラーの原因となったゼロ、である、私はエラーを引き起こす可能性がどのような状態を知らない、私は012を構築しようとしましたdebugの代わりに、しかし、まだ失敗した、誰もが何か考えを与えることができますか?どんな助けもありがたい。イムVS2008を使用してwin7の:)

+3

クラッシュは通常、どこかにあなたのプログラム内のメモリ破損のいくつかの種類を示すべきです。範囲外のアクセスや動的メモリに関連するその他のエラーについては、コードを確認してください。 – ComicSansMS

+0

ご返信ありがとうございますが、VC++ 6.0を使用してプログラムをコンパイルするとエラーは発生しません。その非常に奇妙な@ComicSansMS – Searene

+1

これは典型的なエラーです。あなたはおそらくちょうどVC6で幸運を得て、それは重要なデータに触れませんでした。それがデバッグするのをとても難しくするものです:あなたはどこに隠れているのかわからないことがあります。 – ComicSansMS

答えて

0

ポイントは次のとおりです。seudo = new unsigned char(sizeof(P_HDR) + strlen(dump));、このような seudo = new unsigned char[sizeof(P_HDR) + strlen(dump)];

+0

また、ありがとう、@ ComicSansMS、それは確かにメモリ破損です。 – Searene

関連する問題