Bitdefender Hypervisor Memory Introspection
debugger.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef _DEBUGGER_H_
6 #define _DEBUGGER_H_
7 
8 #include "introtypes.h"
9 
10 
11 //#define DEBUG_MEM_ALLOCS
12 //#define DEBUG_EPT_VIOLATIONS
13 //#define DEBUG_CHECK_HOOKS
14 
15 #ifdef DEBUG_MEM_ALLOCS
16 #define HpAllocWithTag(Add, Len, Tag) IntDbgAllocMem(Len, Tag, __FILENAME__, __LINE__)
17 #define HpFreeAndNullWithTag(Add, Tag) IntDbgFreeMem(Add, Tag, __LINE__)
18 #endif
19 
22  _In_ DWORD Argc,
23  _In_ const char *Argv[]
24  );
25 
26 #ifdef DEBUG_MEM_ALLOCS
27 
28 __attribute__((malloc))
29 __attribute__ ((alloc_size (1)))
30 __must_check void *
31 IntDbgAllocMem(
32  _In_ size_t Size,
33  _In_ DWORD Tag,
34  _In_ const char *FileName,
35  _In_ DWORD Line
36  );
37 
39 IntDbgFreeMem(
40  _In_ void **Address,
41  _In_ DWORD Tag,
42  _In_ DWORD Line
43  );
44 
46 IntDbgDumpAllocs(
47  _In_opt_ DWORD Tag
48  );
49 
51 IntDbgCheckAllocs(
52  void
53  );
54 
55 #endif // DEBUG_MEM_ALLOCS
56 
57 #ifdef DEBUG_CHECK_HOOKS
58 
59 static void
61  void
62  );
63 
64 #endif // DEBUG_CHECK_HOOKS
65 
66 #endif // _DEBUGGER_H_
#define _In_opt_
Definition: intro_sal.h:16
#define _In_
Definition: intro_sal.h:21
int INTSTATUS
The status data type.
Definition: introstatus.h:24
static void IntDbgCheckHooks(void)
Definition: debugger.c:182
#define __must_check
Definition: introtypes.h:48
INTSTATUS IntDbgProcessCommand(DWORD Argc, const char *Argv[])
Definition: debugger.c:2857
uint32_t DWORD
Definition: intro_types.h:49