我正在使用一个大的闭源框架。我最近添加了一个新实体,现在我在执行某些操作时遇到访问冲突。但是,它们发生在框架内的调用上,所以我不知道我执行的是错误的,因为我没有收到调用堆栈。调试访问冲突
在CRT文件tidtable.c
中定义的函数_CRTIMP PFLS_GETVALUE_FUNCTION __cdecl __set_flsgetvalue()
中报告违规。具体的行是PFLS_GETVALUE_FUNCTION flsGetValue = FLS_GETVALUE;
。我不确定,但我认为它与函数指针有关?
错误消息是Unhandled exception at 0x0000007a in fmwk.exe: 0xC0000005: Access violation reading location 0x0000007a.
。我的解释是,它试图访问偏移量为0x7a
的东西到一个对象中,但它被激活了一个空指针。它是否正确?如果是这样,有没有办法找到那个偏移量对应的东西?
下面是调用堆栈:
0000007a()
fmwk.dll!100f2630()
[Frames below may be incorrect and/or missing, no symbols loaded for fmwk.dll]
<lots of framework and windows dlls>
fmwk.exe!00402ef4()
msvcr100.dll!__set_flsgetvalue() Line 145 + 0xc bytes C
msvcr100.dll!_getptd_noexit() Line 498 + 0x7 bytes C
msvcr100.dll!_getptd() Line 523 + 0x5 bytes C
msvcr100.dll!_LocaleUpdate::_LocaleUpdate(localeinfo_struct * plocinfo=0x00000000) Line 243 + 0x5 bytes C++
msvcr100.dll!x_ismbbtype_l(localeinfo_struct * plocinfo=0x00000000, unsigned int tst=0, int cmask=1386664, int kmask=1414714) Line 219 C++
msvcr100.dll!_ismbblead(unsigned int tst=0) Line 172 + 0xe bytes C++
fmwk.exe!004010a0()
fmwk.exe!00404d61()
kernel32.dll!7c817077()
也许这是[运行时库](http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx)不匹配,因为它看起来像代码试图访问不存在的线程本地存储(尽管我可能会误读堆栈跟踪错误)。 – user786653