..处的首次机会异常:读取位置时发生访问冲突..当使用Visual Studio 2010进行调试时
First-chance exception at ...: Access violation reading location ... when debugging using Visual Studio 2010
我非常努力地从遗留代码访问违规中捕获不断获取:
First-chance exception at 0x57e77e1c in YouTubeLocal.exe: 0xC0000005: Access violation reading location 0x0000000c.
我的堆栈看起来像这样:
Qt5Guid.dll!57e77e1c()
[Frames below may be incorrect and/or missing, no symbols loaded for Qt5Guid.dll]
Qt5Guid.dll!57e75604()
Qt5Guid.dll!57ed520b()
Qt5Guid.dll!57dcf18b()
> msvcr100d.dll!_unlock(int locknum=0x00000004) Line 375 C
msvcr100d.dll!_heap_alloc_dbg_impl(unsigned int nSize=0x00000040, int nBlockUse=0x00000001, const char * szFileName=0x00000000, int nLine=0x00000000, int * errno_tmp=0x0015cb70) Line 507 + 0x7 bytes C++
msvcr100d.dll!_heap_alloc_dbg_impl(unsigned int nSize=0x00000040, int nBlockUse=0x00000001, const char * szFileName=0x00000000, int nLine=0x00000000, int * errno_tmp=0x0015cb70) Line 504 + 0xc bytes C++
msvcr100d.dll!_nh_malloc_dbg_impl(unsigned int nSize=0x00000040, int nhFlag=0x00000000, int nBlockUse=0x00000001, const char * szFileName=0x00000000, int nLine=0x00000000, int * errno_tmp=0x0015cb70) Line 239 + 0x19 bytes C++
msvcr100d.dll!_nh_malloc_dbg(unsigned int nSize=0x00000002, int nhFlag=0x0015cbdc, int nBlockUse=0x0015cbc8, const char * szFileName=0x0015cbb0, int nLine=0x0015cbc8) Line 302 + 0x1d bytes C++
Qt5Cored.dll!533b0628()
Qt5Cored.dll!53388046()
Qt5Cored.dll!5335f56b()
Qt5Cored.dll!535e74c4()
Qt5Cored.dll!536f7198()
Qt5Widgetsd.dll!53aa4aea()
kernel32.dll!778bc3d4()
msvcr100d.dll!_unlock(int locknum=0x00000004) Line 375 C
msvcr100d.dll!_free_dbg(void * pUserData=0x53a4b300, int nBlockUse=0x019757a0) Line 1270 + 0x7 bytes C++
msvcr100d.dll!_free_dbg(void * pUserData=0x53a4b300, int nBlockUse=0x019757a0) Line 1267 + 0xc bytes C++
01b4bd40()
kernel32.dll!778bc3d4()
msvcr100d.dll!_free_base(void * pBlock=0x0015d060) Line 50 + 0x13 bytes C
018a4a84()
kernel32.dll!778bc3d4()
msvcr100d.dll!_free_base(void * pBlock=0x57c49736) Line 50 + 0x13 bytes C
0015d140()
feeefeee()
调试器在此文件(mlock.c(中停止
/***
* _unlock - Release multi-thread lock
*
*Purpose:
* Note that it is legal for a thread to aquire _EXIT_LOCK1
* multiple times.
*
*Entry:
* locknum = number of the lock to release
*
*Exit:
*
*Exceptions:
*
*******************************************************************************/
void __cdecl _unlock (
int locknum
)
{
/*
* leave the critical section.
*/
LeaveCriticalSection( _locktable[locknum].lock );
}
我找不到发生访问冲突的线路。我怎样才能找到导致异常的线路?
更新:
这是我的解决方案:Microsoft应用程序验证程序
尝试添加一些宏,在释放内存后将指针设置为NULL。在使用此类指针之前,也可以尝试添加一些断言或类似内容。有了这些,你应该能够很快地找到错误。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- 如何在MS Visual Studio 2019中运行QT UI
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio Code - C++ Debugger 無法啟動
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio Code "undefined reference to `WinMain@16'"
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Visual Studio中的函数声明和函数定义问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- Visual Studio mkl_link_tool.exe链接错误
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 不同的Visual Studio版本中缺少.dll
- 用Visual Studio在C++中嵌入Julia
- Visual Studio 2017循环自动向量化问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- Visual Studio在尝试读取resource.txt文件时崩溃
- Visual Studio 2017 不允许我创建 C++ 专用模板