Removed PDB32_DEBUGGED flag and send all debug events unconditionally.
Implemented IsDebuggerPresent().
diff --git a/server/process.c b/server/process.c
index 9d01b5f..ddd8226 100644
--- a/server/process.c
+++ b/server/process.c
@@ -366,6 +366,7 @@
static void get_process_info( struct process *process, struct get_process_info_request *req )
{
req->pid = process;
+ req->debugged = (process->debugger != 0);
req->exit_code = process->exit_code;
req->priority = process->priority;
req->process_affinity = process->affinity;
@@ -398,6 +399,11 @@
set_error( STATUS_INVALID_PARAMETER );
return;
}
+ if (!thread) /* process is dead */
+ {
+ set_error( STATUS_ACCESS_DENIED );
+ return;
+ }
suspend_thread( thread, 0 );
if (thread->attached)
{
@@ -439,6 +445,11 @@
set_error( STATUS_INVALID_PARAMETER );
return;
}
+ if (!thread) /* process is dead */
+ {
+ set_error( STATUS_ACCESS_DENIED );
+ return;
+ }
suspend_thread( thread, 0 );
if (thread->attached)
{
@@ -591,6 +602,7 @@
release_object( process->init_event );
process->init_event = NULL;
if (current->suspend + current->process->suspend > 0) stop_thread( current );
+ req->debugged = (current->process->debugger != 0);
}
/* open a handle to a process */