Rémi Bernon : winedbg: Use debug event code in packet_reply_status.

Alexandre Julliard julliard at winehq.org
Tue Apr 7 15:27:16 CDT 2020


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

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Tue Apr  7 19:34:17 2020 +0200

winedbg: Use debug event code in packet_reply_status.

This will help expand later the cases to tell gdb about the cause of the
break.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/winedbg/gdbproxy.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c
index b3c4002b3b..332fb0c9d3 100644
--- a/programs/winedbg/gdbproxy.c
+++ b/programs/winedbg/gdbproxy.c
@@ -874,10 +874,11 @@ static enum packet_return packet_reply_status(struct gdb_context* gdbctx)
     dbg_ctx_t ctx;
     size_t i;
 
-    if (process != NULL)
+    switch (gdbctx->de.dwDebugEventCode)
     {
+    default:
+        if (!process) return packet_error;
         if (!(backend = process->be_cpu)) return packet_error;
-
         if (!(thread = dbg_get_thread(process, gdbctx->de.dwThreadId)) ||
             !backend->get_context(thread->handle, &ctx))
             return packet_error;
@@ -900,13 +901,13 @@ static enum packet_return packet_reply_status(struct gdb_context* gdbctx)
 
         packet_reply_close(gdbctx);
         return packet_done;
-    }
-    else
-    {
-        /* Try to put an exit code
-         * Cannot use GetExitCodeProcess, wouldn't fit in a 8 bit value, so
-         * just indicate the end of process and exit */
-        return packet_reply(gdbctx, "W00") | packet_last_f;
+
+    case EXIT_PROCESS_DEBUG_EVENT:
+        packet_reply_open(gdbctx);
+        packet_reply_add(gdbctx, "W");
+        packet_reply_val(gdbctx, gdbctx->de.u.ExitProcess.dwExitCode, 4);
+        packet_reply_close(gdbctx);
+        return packet_done | packet_last_f;
     }
 }
 




More information about the wine-cvs mailing list