質問
私の観察におけるクラッシュ内に自分の呼び出しスタック表示
mfc42u!CString::AllocBeforeWrite+5
mfc42u!CString::operator=+22
考えがないのはなぜこの庭.これませんがよく起こる。あらゆる提案が役に立つだろう。私のクラッシュダンプとる事が出来ませんので進行ます。
の操作を行っておりますがこのようになっ
iParseErr += m_RawMessage[wMsgLen-32] != NC_SP;
がm_RawMessageは512長char配列に格納します。wMsgLenは符号なしshort とNC_SPに定義される
#define NC_SP 0x20 // Space
編集:
呼び出しスタック:
042afe3c 5f8090dd mfc42u!CString::AllocBeforeWrite+0x5 * WARNING: Unable to verify checksum for WP Communications Server.exe
042afe50 0045f0c0 mfc42u!CString::operator=+0x22
042aff10 5f814d6b WP_Communications_Server!CParserN1000::iCheckMessage(void)+0x665 [V:\CSAC\SourceCode\WP Communications Server\HW Parser N1000.cpp @ 1279]
042aff80 77c3a3b0 mfc42u!_AfxThreadEntry+0xe6
042affb4 7c80b729 msvcrt!_endthreadex+0xa9
042affec 00000000 kernel32!BaseThreadStart+0x37
でもこれは完全なコールスタックを掲載していますコードスニペットとしての私の元のメッセージ
感謝
解決
いるかちょっとフラストレーション専用に作成する方法もあります。
CString::AllocBeforeWriteなものを私にとっては、システムという配分である。
が入っているのか、それとも、他のメモリ操作(特に解放またはリサイズのメモリが破損すか。
この問題に対する有効なC/C++のメモリ管理は、エラーの解放(またはサイズ変更)メモリ(例えば、次のステップに進むべき時が来の解放と同じジャンクメモリはクラッシュのシステムimmediatlyが原因となり堆積場にある--特が新たにメモリを割り当てられてしまいます。
お客様の状況が見えにくくするようです。
の悪いものは:
できる非常に難しいとの実際のエラーが発生するが、ヒープが壊れた。
このきいものの、その問題のみが発生します。す強さによって一部の複雑な状況です。
他のヒント
ていらっしゃることだと思いますゃいますので、あなた:wMsgLen>=32
所属していません StackOverflow