forked from qt-creator/qt-creator
CDB: Fix attaching to a crashed process.
This commit is contained in:
@@ -707,10 +707,17 @@ bool CdbDebugEngine::startAttachDebugger(qint64 pid, DebuggerStartMode sm, QStri
|
|||||||
{
|
{
|
||||||
// Need to attrach invasively, otherwise, no notification signals
|
// Need to attrach invasively, otherwise, no notification signals
|
||||||
// for for CreateProcess/ExitProcess occur.
|
// for for CreateProcess/ExitProcess occur.
|
||||||
// As of version 6.11, the initial breakpoint suppression has no effect (see notifyException).
|
// Initial breakpoint occur:
|
||||||
// when attaching to a console process starting up. However, there is no initial breakpoint
|
// 1) Desired: When attaching to a crashed process
|
||||||
// (and no startup trap), when attaching to a running GUI process.
|
// 2) Undesired: When starting up a console process, in conjunction
|
||||||
const ULONG flags = DEBUG_ATTACH_INVASIVE_RESUME_PROCESS|DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK;
|
// with the 32bit Wow-engine
|
||||||
|
// As of version 6.11, the flag only affects 1). 2) Still needs to be suppressed
|
||||||
|
// by lookup at the state of the application (startup trap). However,
|
||||||
|
// there is no startup trap when attaching to a process that has been
|
||||||
|
// running for a while. (see notifyException).
|
||||||
|
ULONG flags = DEBUG_ATTACH_INVASIVE_RESUME_PROCESS;
|
||||||
|
if (manager()->startParameters()->startMode != AttachCrashedExternal)
|
||||||
|
flags |= DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK;
|
||||||
const HRESULT hr = m_d->m_cif.debugClient->AttachProcess(NULL, pid, flags);
|
const HRESULT hr = m_d->m_cif.debugClient->AttachProcess(NULL, pid, flags);
|
||||||
if (debugCDB)
|
if (debugCDB)
|
||||||
qDebug() << "Attaching to " << pid << " using flags" << flags << " returns " << hr << executionStatusString(m_d->m_cif.debugControl);
|
qDebug() << "Attaching to " << pid << " using flags" << flags << " returns " << hr << executionStatusString(m_d->m_cif.debugControl);
|
||||||
|
Reference in New Issue
Block a user