Я отлаживаю 64-битный аварийный дамп C ++ (управляемый) (нарушение прав доступа).
Общий размер дампа составляет 32,374,535 кб.
Приложение является многопоточным, и в соответствующем стеке вызовов упоминается только mscvrt.dll!memcpy
(я не знаю, какой другой поток создает этот). Очевидно, что нет соответствующего исходного кода.
Окно Visual Studio Locals
пусто.
Необработанное исключение упоминает Access violation writing location 0x000000F02A6BB000
, но в этом месте, кажется, ничего нет:
0x000000F02A6BAF84 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............................................................
0x000000F02A6BAFC2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............................................................
0x000000F02A6BB000 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? .............................................................. <= here it is.
0x000000F02A6BB03E ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ..............................................................
Я не вижу причин, по которым запись в этом месте памяти может вызвать какие-либо проблемы, поэтому я считаю (исходя из размера дампа), что я имею дело с ошибкой памяти (то есть невозможно скопировать что-то в память, потому что так много памяти уже используется, что не осталось места). Однако, если это так, не должно ли быть что-то в этом месте памяти?
У кого-нибудь есть идеи по этому поводу?