ntdll: Implement DbgUiConnectToDbg().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2021-01-28 11:20:38 +01:00
parent f7c48da359
commit a24e330b20
3 changed files with 18 additions and 1 deletions

View File

@ -34,7 +34,7 @@
@ stub DbgPrompt @ stub DbgPrompt
# @ stub DbgQueryDebugFilterState # @ stub DbgQueryDebugFilterState
# @ stub DbgSetDebugFilterState # @ stub DbgSetDebugFilterState
@ stub DbgUiConnectToDbg @ stdcall DbgUiConnectToDbg()
@ stub DbgUiContinue @ stub DbgUiContinue
@ stub DbgUiConvertStateChangeStructure @ stub DbgUiConvertStateChangeStructure
# @ stub DbgUiDebugActiveProcess # @ stub DbgUiDebugActiveProcess

View File

@ -134,6 +134,22 @@ void WINAPI DbgUiSetThreadDebugObject( HANDLE handle )
NtCurrentTeb()->DbgSsReserved[1] = handle; NtCurrentTeb()->DbgSsReserved[1] = handle;
} }
/***********************************************************************
* DbgUiConnectToDbg (NTDLL.@)
*/
NTSTATUS WINAPI DbgUiConnectToDbg(void)
{
HANDLE handle;
NTSTATUS status;
OBJECT_ATTRIBUTES attr = { sizeof(attr) };
if (DbgUiGetThreadDebugObject()) return STATUS_SUCCESS; /* already connected */
status = NtCreateDebugObject( &handle, DEBUG_ALL_ACCESS, &attr, 0 );
if (!status) DbgUiSetThreadDebugObject( handle );
return status;
}
/*********************************************************************** /***********************************************************************
* DbgUiRemoteBreakin (NTDLL.@) * DbgUiRemoteBreakin (NTDLL.@)
*/ */

View File

@ -3020,6 +3020,7 @@ typedef struct _PS_CREATE_INFO
NTSYSAPI void WINAPI DbgBreakPoint(void); NTSYSAPI void WINAPI DbgBreakPoint(void);
NTSYSAPI NTSTATUS WINAPIV DbgPrint(LPCSTR fmt, ...); NTSYSAPI NTSTATUS WINAPIV DbgPrint(LPCSTR fmt, ...);
NTSYSAPI NTSTATUS WINAPIV DbgPrintEx(ULONG iComponentId, ULONG Level, LPCSTR fmt, ...); NTSYSAPI NTSTATUS WINAPIV DbgPrintEx(ULONG iComponentId, ULONG Level, LPCSTR fmt, ...);
NTSYSAPI NTSTATUS WINAPI DbgUiConnectToDbg(void);
NTSYSAPI HANDLE WINAPI DbgUiGetThreadDebugObject(void); NTSYSAPI HANDLE WINAPI DbgUiGetThreadDebugObject(void);
NTSYSAPI NTSTATUS WINAPI DbgUiIssueRemoteBreakin(HANDLE); NTSYSAPI NTSTATUS WINAPI DbgUiIssueRemoteBreakin(HANDLE);
NTSYSAPI void WINAPI DbgUiRemoteBreakin(void*); NTSYSAPI void WINAPI DbgUiRemoteBreakin(void*);