Jacek Caban : server: Remove no longer needed break_process.

Alexandre Julliard julliard at winehq.org
Fri Jul 5 14:49:18 CDT 2019


Module: wine
Branch: master
Commit: b0ae02bea6c905ba989bf2cc2c91130ea7eb53bc
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b0ae02bea6c905ba989bf2cc2c91130ea7eb53bc

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jul  5 13:24:29 2019 +0200

server: Remove no longer needed break_process.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 server/process.c | 22 ----------------------
 server/process.h |  1 -
 server/thread.c  | 35 -----------------------------------
 server/thread.h  |  2 --
 server/trace.c   |  1 -
 5 files changed, 61 deletions(-)

diff --git a/server/process.c b/server/process.c
index beaa686..b67bd88 100644
--- a/server/process.c
+++ b/server/process.c
@@ -1041,28 +1041,6 @@ void kill_debugged_processes( struct thread *debugger, int exit_code )
 }
 
 
-/* trigger a breakpoint event in a given process */
-void break_process( struct process *process )
-{
-    struct thread *thread;
-
-    suspend_process( process );
-
-    LIST_FOR_EACH_ENTRY( thread, &process->thread_list, struct thread, proc_entry )
-    {
-        if (thread->context)  /* inside an exception event already */
-        {
-            break_thread( thread );
-            goto done;
-        }
-    }
-    if ((thread = get_process_first_thread( process ))) thread->debug_break = 1;
-    else set_error( STATUS_ACCESS_DENIED );
-done:
-    resume_process( process );
-}
-
-
 /* detach a debugger from all its debuggees */
 void detach_debugged_processes( struct thread *debugger )
 {
diff --git a/server/process.h b/server/process.h
index d9d29f0..20503a2 100644
--- a/server/process.h
+++ b/server/process.h
@@ -135,7 +135,6 @@ extern void resume_process( struct process *process );
 extern void kill_process( struct process *process, int violent_death );
 extern void kill_console_processes( struct thread *renderer, int exit_code );
 extern void kill_debugged_processes( struct thread *debugger, int exit_code );
-extern void break_process( struct process *process );
 extern void detach_debugged_processes( struct thread *debugger );
 extern struct process_snapshot *process_snap( int *count );
 extern void enum_processes( int (*cb)(struct process*, void*), void *user);
diff --git a/server/thread.c b/server/thread.c
index 63eea94..d5742a1 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -185,7 +185,6 @@ static inline void init_thread_structure( struct thread *thread )
     thread->entry_point     = 0;
     thread->debug_ctx       = NULL;
     thread->debug_event     = NULL;
-    thread->debug_break     = 0;
     thread->system_regs     = 0;
     thread->queue           = NULL;
     thread->wait            = NULL;
@@ -1198,39 +1197,6 @@ static unsigned int get_context_system_regs( enum cpu_type cpu )
     return 0;
 }
 
-/* trigger a breakpoint event in a given thread */
-void break_thread( struct thread *thread )
-{
-    debug_event_t data;
-
-    assert( thread->context );
-
-    memset( &data, 0, sizeof(data) );
-    data.exception.first     = 1;
-    data.exception.exc_code  = STATUS_BREAKPOINT;
-    data.exception.flags     = EXCEPTION_CONTINUABLE;
-    switch (thread->context->cpu)
-    {
-    case CPU_x86:
-        data.exception.address = thread->context->ctl.i386_regs.eip;
-        break;
-    case CPU_x86_64:
-        data.exception.address = thread->context->ctl.x86_64_regs.rip;
-        break;
-    case CPU_POWERPC:
-        data.exception.address = thread->context->ctl.powerpc_regs.iar;
-        break;
-    case CPU_ARM:
-        data.exception.address = thread->context->ctl.arm_regs.pc;
-        break;
-    case CPU_ARM64:
-        data.exception.address = thread->context->ctl.arm64_regs.pc;
-        break;
-    }
-    generate_debug_event( thread, EXCEPTION_DEBUG_EVENT, &data );
-    thread->debug_break = 0;
-}
-
 /* take a snapshot of currently running threads */
 struct thread_snapshot *thread_snap( int *count )
 {
@@ -1829,7 +1795,6 @@ DECL_HANDLER(set_suspend_context)
         memcpy( current->suspend_context, get_req_data(), sizeof(context_t) );
         current->suspend_context->flags = 0;  /* to keep track of what is modified */
         current->context = current->suspend_context;
-        if (current->debug_break) break_thread( current );
     }
 }
 
diff --git a/server/thread.h b/server/thread.h
index 8bf7d73..40f0eec 100644
--- a/server/thread.h
+++ b/server/thread.h
@@ -56,7 +56,6 @@ struct thread
     struct list            mutex_list;    /* list of currently owned mutexes */
     struct debug_ctx      *debug_ctx;     /* debugger context if this thread is a debugger */
     struct debug_event    *debug_event;   /* debug event being sent to debugger */
-    int                    debug_break;   /* debug breakpoint pending? */
     unsigned int           system_regs;   /* which system regs have been set */
     struct msg_queue      *queue;         /* message queue */
     struct thread_wait    *wait;          /* current wait condition if sleeping */
@@ -120,7 +119,6 @@ extern int wake_thread_queue_entry( struct wait_queue_entry *entry );
 extern int add_queue( struct object *obj, struct wait_queue_entry *entry );
 extern void remove_queue( struct object *obj, struct wait_queue_entry *entry );
 extern void kill_thread( struct thread *thread, int violent_death );
-extern void break_thread( struct thread *thread );
 extern void wake_up( struct object *obj, int max );
 extern int thread_queue_apc( struct process *process, struct thread *thread, struct object *owner, const apc_call_t *call_data );
 extern void thread_cancel_apc( struct thread *thread, struct object *owner, enum apc_type type );
diff --git a/server/trace.c b/server/trace.c
index af87a5d..3213490 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -5510,7 +5510,6 @@ static const struct
     { "ALIAS_EXISTS",                STATUS_ALIAS_EXISTS },
     { "BAD_DEVICE_TYPE",             STATUS_BAD_DEVICE_TYPE },
     { "BAD_IMPERSONATION_LEVEL",     STATUS_BAD_IMPERSONATION_LEVEL },
-    { "BREAKPOINT",                  STATUS_BREAKPOINT },
     { "BUFFER_OVERFLOW",             STATUS_BUFFER_OVERFLOW },
     { "BUFFER_TOO_SMALL",            STATUS_BUFFER_TOO_SMALL },
     { "CANCELLED",                   STATUS_CANCELLED },




More information about the wine-cvs mailing list