我在尝试追踪程序中的访问冲突时遇到了问题。它发生在第三次调用析构函数时,恰好在析构函数似乎完成时。
我花了几个小时试图追查这个问题,所以我正在寻找关于我可以做的事情的进一步建议。我正在使用new
和delete
运算符创建类实例。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。