Деструктор MFC / ATL дает сбой, как получить больше информации? - PullRequest
0 голосов
/ 05 июня 2019

Я отлаживаю аварийный дамп со следующим callstack:

mfc110u.dll!ATL::CSimpleStringT<char,1>::~CSimpleStringT<char,1>(void)
Application.exe!CInternal_Class::Do_Something(unsigned int uiId=10304276, int iValidObject=0, const ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t> > > & strThing={...}, const CStringArray & saWhatever={...}, const CPtrArray & psaOtherthings={...}) Line 6932

Как вы видите, что-то идет не так при запуске деструктора CSimpleStringT (или CStringT, яЯ знаю о typedef).

В исходном коде Application.exe!CInternal_Class:Do_Something() я нахожусь в этой строке:

return hr; // at this stage, all local variables get destroyed.

В моей функции есть довольно многовнутренние CStringT переменные, и я хотел бы знать, какая из них уничтожается в данный момент.

Вы можете подумать: «Это просто, просто перейдите к исходному коду деструктора (дважды щелкните вверхустроки callstack) и добавьте this в окно наблюдения ".
Однако это дает 'this' may only be used inside a nonstatic member function.
С другой стороны, окно Locals пустое.

У кого-нибудь есть идея?
Заранее спасибо

...