winedbg: Kill the whole target process on exit in auto mode.
This commit is contained in:
parent
6d2063f41b
commit
fbd08d5914
|
@ -774,7 +774,7 @@ enum dbg_start dbg_active_auto(int argc, char* argv[])
|
||||||
|
|
||||||
hFile = parser_generate_command_file("echo Modules:", "info share",
|
hFile = parser_generate_command_file("echo Modules:", "info share",
|
||||||
"echo Threads:", "info threads",
|
"echo Threads:", "info threads",
|
||||||
"backtrace", "detach", NULL);
|
"kill", NULL);
|
||||||
}
|
}
|
||||||
else if (!strcmp(argv[0], "--minidump"))
|
else if (!strcmp(argv[0], "--minidump"))
|
||||||
{
|
{
|
||||||
|
@ -839,7 +839,16 @@ enum dbg_start dbg_active_auto(int argc, char* argv[])
|
||||||
|
|
||||||
static BOOL tgt_process_active_close_process(struct dbg_process* pcs, BOOL kill)
|
static BOOL tgt_process_active_close_process(struct dbg_process* pcs, BOOL kill)
|
||||||
{
|
{
|
||||||
if (pcs == dbg_curr_process)
|
if (kill)
|
||||||
|
{
|
||||||
|
DWORD exit_code = 0;
|
||||||
|
|
||||||
|
if (pcs == dbg_curr_process && dbg_curr_thread->in_exception)
|
||||||
|
exit_code = dbg_curr_thread->excpt_record.ExceptionCode;
|
||||||
|
|
||||||
|
TerminateProcess(pcs->handle, exit_code);
|
||||||
|
}
|
||||||
|
else if (pcs == dbg_curr_process)
|
||||||
{
|
{
|
||||||
/* remove all set breakpoints in debuggee code */
|
/* remove all set breakpoints in debuggee code */
|
||||||
break_set_xpoints(FALSE);
|
break_set_xpoints(FALSE);
|
||||||
|
@ -853,10 +862,6 @@ static BOOL tgt_process_active_close_process(struct dbg_process* pcs, BOOL kill)
|
||||||
ContinueDebugEvent(dbg_curr_pid, dbg_curr_tid, DBG_CONTINUE);
|
ContinueDebugEvent(dbg_curr_pid, dbg_curr_tid, DBG_CONTINUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (kill)
|
|
||||||
{
|
|
||||||
TerminateProcess(pcs->handle, 0);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!DebugActiveProcessStop(pcs->pid)) return FALSE;
|
if (!DebugActiveProcessStop(pcs->pid)) return FALSE;
|
||||||
|
|
Loading…
Reference in New Issue