Я использую большой фреймворк с закрытым исходным кодом. Я недавно добавил новый объект, и теперь я получаю нарушения прав доступа при выполнении некоторых действий. Тем не менее, они происходят при вызовах изнутри фреймворка, поэтому я не знаю, что я реализовал неправильно, так как я не получаю стек вызовов.
О нарушении сообщается в функции _CRTIMP PFLS_GETVALUE_FUNCTION __cdecl __set_flsgetvalue()
, определенной в файле CRT tidtable.c
. Конкретная строка 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()