У меня приостановлен процесс в точке останова под визуальным отладчиком студии.
Я могу подключить столько, сколько cdb (консольный отладчик Microsoft) в неинвазивном режиме, как
cdb -p pid -pvr
Как добиться того же, используя мою собственную программу, которая использует Debug Engine API.
IDebugClient* debugClient = 0;
(DebugCreate( __uuidof(IDebugClient), (void **)&debugClient );
debugClient->AttachProcess(0,id,DEBUG_ATTACH_NONINVASIVE
|DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND);
Этот код вызывает E_INVALIDARG. Разве эта комбинация не разрешена? Нижеследующее работает, но когда он вызывает GetStackTrace, он возвращает E_UNEXPECTED.
debugClient->AttachProcess(0,id,DEBUG_ATTACH_NONINVASIVE);
debugControl->GetStackTrace(0, 0, 0, pStackFrames, maxFrames, &framesFilled);
Мне интересно присоединиться к процессу, который уже неинвазивным способом прерывания отладки, и получить несколько локальных переменных из текущего стека и некоторое значение глобальной переменной.
Во-вторых, может ли кто-нибудь указать мне функцию, используемую для сброса содержимого памяти для символа итеративно, как это делает! Stl. Мне нужно написать плагин для дампа одной из моих структур, похожих на векторные.
Спасибо