83 *ppvObject = &
This->ICorDebugProcess_iface;
91 ICorDebugProcess_AddRef(iface);
122 ICorDebug_Release(&
This->cordebug->ICorDebug_iface);
228 *pdwProcessId =
This->dwProcessID;
241 *phProcessHandle =
This->handle;
415 ERR(
"Failed to duplicate process handle\n");
424 ERR(
"Failed to duplicate thread handle\n");
431 This->cordebug = cordebug;
432 This->dwProcessID = lpProcessInformation->dwProcessId;
435 ICorDebug_AddRef(&
This->cordebug->ICorDebug_iface);
453 *ppvObject = &
This->ICorDebugProcessEnum_iface;
461 ICorDebugProcessEnum_AddRef(iface);
471 return ICorDebug_AddRef(&
This->ICorDebug_iface);
479 return ICorDebug_Release(&
This->ICorDebug_iface);
520 FIXME(
"stub %p %ld %p %p\n",
This, celt, processes, pceltFetched);
546 *ppvObject = &
This->ICorDebug_iface;
554 ICorDebug_AddRef( iface );
579 ERR(
"Processes haven't been removed Correctly\n");
581 if(
This->runtimehost)
582 ICLRRuntimeHost_Release(
This->runtimehost);
585 ICorDebugManagedCallback2_Release(
This->pCallback2);
588 ICorDebugManagedCallback_Release(
This->pCallback);
614 ICorDebugProcess_Terminate(
cursor->pProcess, 0);
615 ICorDebugProcess_Release(
cursor->pProcess);
636 hr = ICorDebugManagedCallback_QueryInterface(
pCallback, &IID_ICorDebugManagedCallback2, (
void**)&pCallback2);
640 ICorDebugManagedCallback2_Release(
This->pCallback2);
643 ICorDebugManagedCallback_Release(
This->pCallback);
646 This->pCallback2 = pCallback2;
648 ICorDebugManagedCallback_AddRef(
This->pCallback);
652 WARN(
"Debugging without interface ICorDebugManagedCallback2 is currently not supported.\n");
676 TRACE(
"stub %p %s %s %p %p %d %ld %p %s %p %p %d %p\n",
This,
debugstr_w(lpApplicationName),
677 debugstr_w(lpCommandLine), lpProcessAttributes, lpThreadAttributes,
678 bInheritHandles, dwCreationFlags, lpEnvironment,
debugstr_w(lpCurrentDirectory),
679 lpStartupInfo, lpProcessInformation, debuggingFlags, ppProcess);
681 if(
CreateProcessW(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes,
682 bInheritHandles, dwCreationFlags |
CREATE_SUSPENDED, lpEnvironment, lpCurrentDirectory,
683 lpStartupInfo, lpProcessInformation))
690 new_process->
pProcess = pDebugProcess;
693 ICorDebugProcess_AddRef(pDebugProcess);
694 *ppProcess = pDebugProcess;
697 ICorDebugManagedCallback_CreateProcess(
This->pCallback, pDebugProcess);
714 FIXME(
"stub %p %ld %d %p\n",
This,
id, win32Attach, ppProcess);
726 *ppProcess = &
This->ICorDebugProcessEnum_iface;
727 ICorDebugProcessEnum_AddRef(*ppProcess);
740 BOOL win32DebuggingEnabled)
776 This->runtimehost = runtimehost;
780 if(
This->runtimehost)
781 ICLRRuntimeHost_AddRef(
This->runtimehost);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static HRESULT WINAPI cordebugprocess_EnumerateObjects(ICorDebugProcess *iface, ICorDebugObjectEnum **ppObjects)
static HRESULT WINAPI cordebugprocess_Stop(ICorDebugProcess *iface, DWORD dwTimeoutIgnored)
static HRESULT WINAPI cordebugprocess_ClearCurrentException(ICorDebugProcess *iface, DWORD threadID)
static HRESULT CorDebugProcess_Create(CorDebug *cordebug, IUnknown **ppUnk, LPPROCESS_INFORMATION lpProcessInformation)
static CorDebug * impl_from_ICorDebugProcessEnum(ICorDebugProcessEnum *iface)
static HRESULT WINAPI cordebugprocess_IsTransitionStub(ICorDebugProcess *iface, CORDB_ADDRESS address, BOOL *pbTransitionStub)
static HRESULT WINAPI cordebugprocess_Continue(ICorDebugProcess *iface, BOOL fIsOutOfBand)
static HRESULT WINAPI cordebugprocess_EnableLogMessages(ICorDebugProcess *iface, BOOL fOnOff)
static HRESULT WINAPI cordebugprocess_SetThreadContext(ICorDebugProcess *iface, DWORD threadID, ULONG32 contextSize, BYTE context[])
static HRESULT WINAPI cordebugprocess_ThreadForFiberCookie(ICorDebugProcess *iface, DWORD fiberCookie, ICorDebugThread **ppThread)
static HRESULT WINAPI cordebugprocess_EnumerateThreads(ICorDebugProcess *iface, ICorDebugThreadEnum **ppThreads)
static CorDebug * impl_from_ICorDebug(ICorDebug *iface)
static HRESULT WINAPI CorDebug_CreateProcess(ICorDebug *iface, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, PVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation, CorDebugCreateProcessFlags debuggingFlags, ICorDebugProcess **ppProcess)
static HRESULT WINAPI CorDebug_SetManagedHandler(ICorDebug *iface, ICorDebugManagedCallback *pCallback)
static HRESULT WINAPI cordebugprocess_CanCommitChanges(ICorDebugProcess *iface, ULONG cSnapshots, ICorDebugEditAndContinueSnapshot *pSnapshots[], ICorDebugErrorInfoEnum **pError)
static HRESULT WINAPI cordebugprocess_QueryInterface(ICorDebugProcess *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI process_enum_GetCount(ICorDebugProcessEnum *iface, ULONG *pcelt)
static HRESULT WINAPI cordebugprocess_IsRunning(ICorDebugProcess *iface, BOOL *pbRunning)
static HRESULT WINAPI cordebugprocess_HasQueuedCallbacks(ICorDebugProcess *iface, ICorDebugThread *pThread, BOOL *pbQueued)
static ULONG WINAPI cordebugprocess_AddRef(ICorDebugProcess *iface)
static HRESULT WINAPI cordebugprocess_GetHelperThreadID(ICorDebugProcess *iface, DWORD *pThreadID)
static HRESULT WINAPI cordebugprocess_SetAllThreadsDebugState(ICorDebugProcess *iface, CorDebugThreadState state, ICorDebugThread *pExceptThisThread)
static const struct ICorDebugProcessEnumVtbl processenum_vtbl
static HRESULT WINAPI CorDebug_Initialize(ICorDebug *iface)
static HRESULT WINAPI cordebugprocess_Detach(ICorDebugProcess *iface)
static HRESULT WINAPI process_enum_Clone(ICorDebugProcessEnum *iface, ICorDebugEnum **ppEnum)
static HRESULT WINAPI CorDebug_DebugActiveProcess(ICorDebug *iface, DWORD id, BOOL win32Attach, ICorDebugProcess **ppProcess)
static HRESULT WINAPI CorDebug_CanLaunchOrAttach(ICorDebug *iface, DWORD dwProcessId, BOOL win32DebuggingEnabled)
static ULONG WINAPI CorDebug_AddRef(ICorDebug *iface)
static HRESULT WINAPI cordebugprocess_ModifyLogSwitch(ICorDebugProcess *iface, WCHAR *pLogSwitchName, LONG lLevel)
static HRESULT WINAPI cordebugprocess_GetThread(ICorDebugProcess *iface, DWORD dwThreadId, ICorDebugThread **ppThread)
static HRESULT WINAPI CorDebug_SetUnmanagedHandler(ICorDebug *iface, ICorDebugUnmanagedCallback *pCallback)
static const ICorDebugProcessVtbl cordebugprocessVtbl
static HRESULT WINAPI cordebugprocess_GetID(ICorDebugProcess *iface, DWORD *pdwProcessId)
static DebugProcess * impl_from_ICorDebugProcess(ICorDebugProcess *iface)
static HRESULT WINAPI CorDebug_GetProcess(ICorDebug *iface, DWORD dwProcessId, ICorDebugProcess **ppProcess)
static HRESULT WINAPI cordebugprocess_GetThreadContext(ICorDebugProcess *iface, DWORD threadID, ULONG32 contextSize, BYTE context[])
static HRESULT WINAPI cordebugprocess_WriteMemory(ICorDebugProcess *iface, CORDB_ADDRESS address, DWORD size, BYTE buffer[], SIZE_T *written)
static HRESULT WINAPI cordebugprocess_IsOSSuspended(ICorDebugProcess *iface, DWORD threadID, BOOL *pbSuspended)
static HRESULT WINAPI process_enum_QueryInterface(ICorDebugProcessEnum *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI CorDebug_EnumerateProcesses(ICorDebug *iface, ICorDebugProcessEnum **ppProcess)
static ULONG WINAPI process_enum_AddRef(ICorDebugProcessEnum *iface)
static HRESULT WINAPI process_enum_Reset(ICorDebugProcessEnum *iface)
static HRESULT WINAPI process_enum_Skip(ICorDebugProcessEnum *iface, ULONG celt)
static HRESULT WINAPI process_enum_Next(ICorDebugProcessEnum *iface, ULONG celt, ICorDebugProcess *processes[], ULONG *pceltFetched)
static HRESULT WINAPI cordebugprocess_Terminate(ICorDebugProcess *iface, UINT exitCode)
static ULONG WINAPI process_enum_Release(ICorDebugProcessEnum *iface)
static HRESULT WINAPI CorDebug_QueryInterface(ICorDebug *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI cordebugprocess_ReadMemory(ICorDebugProcess *iface, CORDB_ADDRESS address, DWORD size, BYTE buffer[], SIZE_T *read)
static HRESULT WINAPI cordebugprocess_GetObject(ICorDebugProcess *iface, ICorDebugValue **ppObject)
static ULONG WINAPI cordebugprocess_Release(ICorDebugProcess *iface)
HRESULT CorDebug_Create(ICLRRuntimeHost *runtimehost, IUnknown **ppUnk)
static ULONG WINAPI CorDebug_Release(ICorDebug *iface)
static HRESULT WINAPI CorDebug_Terminate(ICorDebug *iface)
static HRESULT WINAPI cordebugprocess_EnumerateAppDomains(ICorDebugProcess *iface, ICorDebugAppDomainEnum **ppAppDomains)
static HRESULT WINAPI cordebugprocess_CommitChanges(ICorDebugProcess *iface, ULONG cSnapshots, ICorDebugEditAndContinueSnapshot *pSnapshots[], ICorDebugErrorInfoEnum **pError)
static const struct ICorDebugVtbl cordebug_vtbl
static HRESULT WINAPI cordebugprocess_GetHandle(ICorDebugProcess *iface, HPROCESS *phProcessHandle)
CorDebugCreateProcessFlags
SIZE_T LPPROCESS_INFORMATION
#define GetCurrentProcess()
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW(LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
DWORD WINAPI ResumeThread(IN HANDLE hThread)
FxPnpStateCallbackInfo * pCallback
#define IsEqualGUID(rguid1, rguid2)
__WINE_SERVER_LIST_INLINE unsigned int list_count(const struct list *list)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
ICorDebugProcess * pProcess
ICorDebugProcess ICorDebugProcess_iface
#define CONTAINING_RECORD(address, type, field)
#define DUPLICATE_SAME_ACCESS