Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#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_
|