У меня есть процесс, приостановленный в точке останова под отладчиком Visual Studio. Я могу подключить столько же cdb (консольный отладчик Microsoft) в неинвазивном режиме, сколько
cdb -p pid -pvr
Как добиться того же, используя мою собственную программу, которая использует API Debug Engine.
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. Мне нужно написать плагин для сброса одной из моих векторных структур.
Спасибо