windows-nt/Source/XPSP1/NT/windows/appcompat/appverifier/debugger.h

71 lines
1.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#ifndef __APPVERIFIER_DEBUGGER_H_
#define __APPVERIFIER_DEBUGGER_H_
#define MAX_BREAKPOINTS 32
#ifdef _X86_
#define BP_INSTR 0xcc
#define BP_SIZE 1
#else
#pragma message("Debugger Breakpoint support needed for this architecture")
#endif
typedef struct tagBP_INFO *PBP_INFO;
typedef struct tagTHREAD_INFO *PTHREAD_INFO;
typedef struct tagPROCESS_INFO *PPROCESS_INFO;
typedef DWORD (*PBP_HANDLER)(PPROCESS_INFO,
PTHREAD_INFO,
PEXCEPTION_RECORD,
PBP_INFO);
typedef struct tagBP_INFO {
LPVOID Address;
ULONG OriginalInstr;
PBP_HANDLER Handler;
} BP_INFO, *PBP_INFO;
typedef struct tagTHREAD_INFO {
PTHREAD_INFO pNext;
HANDLE hProcess;
HANDLE hThread;
ULONG dwThreadId;
CONTEXT Context;
} THREAD_INFO, *PTHREAD_INFO;
typedef struct tagPROCESS_INFO {
PPROCESS_INFO pNext;
HANDLE hProcess;
DWORD dwProcessId;
BOOL bSeenLdrBp;
LPVOID EntryPoint;
DEBUG_EVENT DebugEvent;
PTHREAD_INFO pFirstThreadInfo;
BP_INFO bp[MAX_BREAKPOINTS];
} PROCESS_INFO, *PPROCESS_INFO;
SIZE_T
ReadMemoryDbg(
HANDLE hProcess,
LPVOID Address,
LPVOID Buffer,
SIZE_T Length
);
BOOL
WriteMemoryDbg(
HANDLE hProcess,
PVOID Address,
PVOID Buffer,
SIZE_T Length
);
DWORD WINAPI
DebugApp(
LPTSTR pszAppName
);
#endif // __APPVERIFIER_DEBUGGER_H_