プログラムでアクセス違反を追跡しようとすると問題が発生します。これは、デストラクタが 3 回目に呼び出されたとき、つまりデストラクタが終了したように見えるときに発生します。
これを追跡するのに何時間も費やしたので、私にできることについてさらにアドバイスを探しています. new
anddelete
演算子を使用してクラス インスタンスを作成しています。Visual Studio の出力ウィンドウには次のように表示されます。
First-chance exception at 0x60e3ad84 (msvcp100d.dll) in WebCollationAgent.exe: 0xC0000005: Access violation writing location 0xabababab.
Unhandled exception at 0x60e3ad84 (msvcp100d.dll) in WebCollationAgent.exe: 0xC0000005: Access violation writing location 0xabababab.
それらの記憶場所に何があったかを調べるために私にできることはありますか?
コール スタック ウィンドウには次のように表示されます (古いものから新しいものへと貼り付けたので、逆の順序で表示されます)。
Program.exe!Network::`scalar deleting destructor'() + 0x2b bytes C++
Program.exe!std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >() Line 754 + 0xf bytes C++
Program.exe!std::_String_val<wchar_t,std::allocator<wchar_t> >::~_String_val<wchar_t,std::allocator<wchar_t> >() Line 478 + 0xb bytes C++
msvcp100d.dll!std::_Container_base12::_Orphan_all() 行 214 + 0x5 バイト C++
この情報に対する私の推測では、何らかの文字列変数が問題を引き起こしているのではないでしょうか? この情報の解釈について誰かアドバイスはありますか?
他のアドバイスも役に立ちます。よろしくお願いします。
Windows 7 でコーディングを行っており、Visual Studio 2010 Professional を使用しています。