Headers for the tracing functions.  
More...
Go to the source code of this file.
Headers for the tracing functions. 
- Author
- Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
- Version
- 0.7 
- Date
- 2023-11-03
- Copyright
- This project is released under the GNU Public License v3. 
◆ TracingCheckForContinuingSteps()
Change for continuing the stepping state in the case of tracing instructions. 
- Parameters
- 
  
    | DbgState | The state of the debugger on the current core |  
 
- Returns
- VOID 
   95{
   96    
   97    
   98    
   99    
  101    {
  103    }
  104}
#define TRUE
Definition BasicTypes.h:55
VOID VmFuncChangeMtfUnsettingState(UINT32 CoreId, BOOLEAN Set)
Suppress unsetting MTF.
Definition Export.c:47
UINT32 CoreId
Definition State.h:169
BOOLEAN TracingMode
Definition State.h:177
 
 
◆ TracingHandleMtf()
Callback for handling VM-exits for MTF in the case of tracing instructions. 
- Parameters
- 
  
    | DbgState | The state of the debugger on the current core |  
 
- Returns
- VOID 
   44{
   45    
   46    
   47    
   49 
   50    
   51    
   52    
   54 
   55    
   56    
   57    
   59}
VOID TracingCheckForContinuingSteps(PROCESSOR_DEBUGGING_STATE *DbgState)
Change for continuing the stepping state in the case of tracing instructions.
Definition Tracing.c:94
VOID TracingRestoreSystemState(PROCESSOR_DEBUGGING_STATE *DbgState)
Restore the system state in the case of tracing instructions.
Definition Tracing.c:68
 
 
◆ TracingPerformInstrumentationStepIn()
Perform tracing of instructions (instrumentation step-in) 
- Parameters
- 
  
    | DbgState | The state of the debugger on the current core |  
 
- Returns
- VOID 
   23{
   25 
   27 
   28    
   29    
   30    
   32 
   34}
#define FALSE
Definition BasicTypes.h:54
UINT32 DisassemblerShowOneInstructionInVmxRootMode(PVOID Address, BOOLEAN Is32Bit)
Shows the disassembly of only one instruction.
Definition Disassembler.c:328
VOID VmFuncRegisterMtfBreak(UINT32 CoreId)
Register for break in the case of an MTF.
Definition Export.c:73
VOID VmFuncEnableMtfAndChangeExternalInterruptState(UINT32 CoreId)
Enables MTF and adjust external interrupt state.
Definition Export.c:799
UINT64 VmFuncGetLastVmexitRip(UINT32 CoreId)
get the last vm-exit RIP
Definition Export.c:318
 
 
◆ TracingPerformRegularStepInInstruction()
Regular step-in | step one instruction to the debuggee. 
- Parameters
- 
  
    | DbgState | The state of the debugger on the current core |  
 
- Returns
- VOID 
  114{
  115    UNREFERENCED_PARAMETER(DbgState);
  116 
  119 
  120    
  121    
  122    
  124 
  125    
  126    
  127    
  128    
  129    
  130    
  131    
  132    
  133    
  134    
  135    
  136    
  137    
  138    
  140 
  141    Interruptibility = InterruptibilityOld;
  142 
  144 
  145    if ((Interruptibility != InterruptibilityOld))
  146    {
  148    }
  149}
#define NULL64_ZERO
Definition BasicTypes.h:52
unsigned __int64 UINT64
Definition BasicTypes.h:21
VOID VmFuncSetInterruptibilityState(UINT64 InterruptibilityState)
Set guest's interruptibility state.
Definition Export.c:421
UINT64 VmFuncClearSteppingBits(UINT64 Interruptibility)
Clear STI and MOV SS bits.
Definition Export.c:409
UINT64 VmFuncGetInterruptibilityState()
Read guest's interruptibility state.
Definition Export.c:398
VOID VmFuncSetRflagTrapFlag(BOOLEAN Set)
Set Rflag's trap flag.
Definition Export.c:110
 
 
◆ TracingRestoreSystemState()
Restore the system state in the case of tracing instructions. 
- Parameters
- 
  
    | DbgState | The state of the debugger on the current core |  
 
- Returns
- VOID 
   69{
   70    
   71    
   72    
   74 
   75    
   76    
   77    
   79 
   80    
   81    
   82    
   84}
VOID VmFuncEnableAndCheckForPreviousExternalInterrupts(UINT32 CoreId)
Checks to enable and reinject previous interrupts.
Definition Export.c:812
VOID VmFuncUnRegisterMtfBreak(UINT32 CoreId)
Unregister for break in the case of an MTF.
Definition Export.c:86