Rémi Bernon : server: Accept DBG_EXCEPTION_HANDLED parameter in continue_debug_event.
Alexandre Julliard
julliard at winehq.org
Wed Jan 6 15:43:49 CST 2021
Module: wine
Branch: master
Commit: c414f232e6cb09a5ec6a4b015c4cdcf427e0531d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c414f232e6cb09a5ec6a4b015c4cdcf427e0531d
Author: Rémi Bernon <rbernon at codeweavers.com>
Date: Wed Jan 6 15:33:10 2021 +0100
server: Accept DBG_EXCEPTION_HANDLED parameter in continue_debug_event.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50453
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/tests/exception.c | 27 ++++++++++++++-------------
server/debugger.c | 1 +
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index ca338775351..202a939b76f 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -1053,7 +1053,7 @@ static void test_exceptions(void)
ok( res == STATUS_SUCCESS, "NtSetContextThread failed with %x\n", res );
}
-static void test_debugger(void)
+static void test_debugger(DWORD cont_status)
{
char cmdline[MAX_PATH];
PROCESS_INFORMATION pi;
@@ -1081,7 +1081,7 @@ static void test_debugger(void)
do
{
- continuestatus = DBG_CONTINUE;
+ continuestatus = cont_status;
ok(WaitForDebugEvent(&de, INFINITE), "reading debug event\n");
ret = ContinueDebugEvent(de.dwProcessId, de.dwThreadId, 0xdeadbeef);
@@ -1091,7 +1091,7 @@ static void test_debugger(void)
if (de.dwThreadId != pi.dwThreadId)
{
trace("event %d not coming from main thread, ignoring\n", de.dwDebugEventCode);
- ContinueDebugEvent(de.dwProcessId, de.dwThreadId, DBG_CONTINUE);
+ ContinueDebugEvent(de.dwProcessId, de.dwThreadId, cont_status);
continue;
}
@@ -3288,7 +3288,7 @@ static void test_rtlraiseexception(void)
run_rtlraiseexception_test(EXCEPTION_INVALID_HANDLE);
}
-static void test_debugger(void)
+static void test_debugger(DWORD cont_status)
{
char cmdline[MAX_PATH];
PROCESS_INFORMATION pi;
@@ -3316,7 +3316,7 @@ static void test_debugger(void)
do
{
- continuestatus = DBG_CONTINUE;
+ continuestatus = cont_status;
ok(WaitForDebugEvent(&de, INFINITE), "reading debug event\n");
ret = ContinueDebugEvent(de.dwProcessId, de.dwThreadId, 0xdeadbeef);
@@ -3326,7 +3326,7 @@ static void test_debugger(void)
if (de.dwThreadId != pi.dwThreadId)
{
trace("event %d not coming from main thread, ignoring\n", de.dwDebugEventCode);
- ContinueDebugEvent(de.dwProcessId, de.dwThreadId, DBG_CONTINUE);
+ ContinueDebugEvent(de.dwProcessId, de.dwThreadId, cont_status);
continue;
}
@@ -4252,7 +4252,7 @@ static void test_thread_context(void)
#undef COMPARE
}
-static void test_debugger(void)
+static void test_debugger(DWORD cont_status)
{
char cmdline[MAX_PATH];
PROCESS_INFORMATION pi;
@@ -4280,7 +4280,7 @@ static void test_debugger(void)
do
{
- continuestatus = DBG_CONTINUE;
+ continuestatus = cont_status;
ok(WaitForDebugEvent(&de, INFINITE), "reading debug event\n");
ret = ContinueDebugEvent(de.dwProcessId, de.dwThreadId, 0xdeadbeef);
@@ -4290,7 +4290,7 @@ static void test_debugger(void)
if (de.dwThreadId != pi.dwThreadId)
{
trace("event %d not coming from main thread, ignoring\n", de.dwDebugEventCode);
- ContinueDebugEvent(de.dwProcessId, de.dwThreadId, DBG_CONTINUE);
+ ContinueDebugEvent(de.dwProcessId, de.dwThreadId, cont_status);
continue;
}
@@ -5500,7 +5500,7 @@ static void test_thread_context(void)
#undef COMPARE
}
-static void test_debugger(void)
+static void test_debugger(DWORD cont_status)
{
char cmdline[MAX_PATH];
PROCESS_INFORMATION pi;
@@ -5528,7 +5528,7 @@ static void test_debugger(void)
do
{
- continuestatus = DBG_CONTINUE;
+ continuestatus = cont_status;
ok(WaitForDebugEvent(&de, INFINITE), "reading debug event\n");
ret = ContinueDebugEvent(de.dwProcessId, de.dwThreadId, 0xdeadbeef);
@@ -5538,7 +5538,7 @@ static void test_debugger(void)
if (de.dwThreadId != pi.dwThreadId)
{
trace("event %d not coming from main thread, ignoring\n", de.dwDebugEventCode);
- ContinueDebugEvent(de.dwProcessId, de.dwThreadId, DBG_CONTINUE);
+ ContinueDebugEvent(de.dwProcessId, de.dwThreadId, cont_status);
continue;
}
@@ -8346,7 +8346,8 @@ START_TEST(exception)
#endif
- test_debugger();
+ test_debugger(DBG_EXCEPTION_HANDLED);
+ test_debugger(DBG_CONTINUE);
test_thread_context();
test_outputdebugstring(1, FALSE);
test_ripevent(1);
diff --git a/server/debugger.c b/server/debugger.c
index e4a6c1e43a8..ee95d4ee326 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -677,6 +677,7 @@ DECL_HANDLER(continue_debug_event)
struct process *process;
if (req->status != DBG_EXCEPTION_NOT_HANDLED &&
+ req->status != DBG_EXCEPTION_HANDLED &&
req->status != DBG_CONTINUE &&
req->status != DBG_REPLY_LATER)
{
More information about the wine-cvs
mailing list