[PATCH 0/1] MR4301: ntdll: Support Ctrl-C stop debuggee and attach 32-bit process in wow64 mode.
Signed-off-by: chenjiangyi <chenjiangyi(a)uniontech.com> -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4301
From: chenjiangyi <chenjiangyi(a)uniontech.com> Signed-off-by: chenjiangyi <chenjiangyi(a)uniontech.com> --- dlls/ntdll/process.c | 10 ---------- dlls/ntdll/unix/loader.c | 2 +- dlls/ntdll/unix/server.c | 2 +- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c index 3ca4195ab3d..2f559b1d503 100644 --- a/dlls/ntdll/process.c +++ b/dlls/ntdll/process.c @@ -730,16 +730,6 @@ NTSTATUS WINAPI DbgUiIssueRemoteBreakin( HANDLE process ) status = NtCreateThreadEx( &handle, THREAD_ALL_ACCESS, &attr, process, DbgUiRemoteBreakin, NULL, 0, 0, 0, 0, NULL ); -#ifdef _WIN64 - /* FIXME: hack for debugging 32-bit wow64 process without a 64-bit ntdll */ - if (status == STATUS_INVALID_PARAMETER) - { - ULONG_PTR wow; - if (!NtQueryInformationProcess( process, ProcessWow64Information, &wow, sizeof(wow), NULL ) && wow) - status = NtCreateThreadEx( &handle, THREAD_ALL_ACCESS, &attr, process, - (void *)0x7ffe1000, NULL, 0, 0, 0, 0, NULL ); - } -#endif if (!status) NtClose( handle ); return status; } diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index bfa161e25c9..74955fb0b9c 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -1804,7 +1804,7 @@ static void load_ntdll_wow64_functions( HMODULE module ) GET_FUNC( RtlpFreezeTimeBias ); GET_FUNC( RtlpQueryProcessDebugInformationRemote ); #undef GET_FUNC - + pDbgUiRemoteBreakin = (void *)find_named_export( module, exports, "DbgUiRemoteBreakin" ); p__wine_ctrl_routine = (void *)find_named_export( module, exports, "__wine_ctrl_routine" ); #ifdef _WIN64 diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c index 24653904308..becb644410f 100644 --- a/dlls/ntdll/unix/server.c +++ b/dlls/ntdll/unix/server.c @@ -640,7 +640,7 @@ static void invoke_system_apc( const apc_call_t *call, apc_result_t *result, BOO (ULONG_PTR)func == call->create_thread.func && (ULONG_PTR)arg == call->create_thread.arg) { /* FIXME: hack for debugging 32-bit process without a 64-bit ntdll */ - if (is_old_wow64() && func == (void *)0x7ffe1000) func = pDbgUiRemoteBreakin; + if (is_wow64()) func = pDbgUiRemoteBreakin; attr->TotalLength = sizeof(buffer); attr->Attributes[0].Attribute = PS_ATTRIBUTE_CLIENT_ID; attr->Attributes[0].Size = sizeof(id); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4301
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details: The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=139578 Your paranoid android. === debian11b (64 bit WoW report) === ntdll: wow64.c:793: Test failed: debugging failed
participants (3)
-
chenjiangyi -
Marvin -
江仪 陈