Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenkdb.h
Go to the documentation of this file.
00001 #pragma once 00002 00003 /* DEFINES *******************************************************************/ 00004 00005 #ifndef RTL_NUMBER_OF 00006 # define RTL_NUMBER_OF(x) (sizeof(x) / sizeof((x)[0])) 00007 #endif 00008 00009 /* TYPES *********************************************************************/ 00010 00011 /* from kdb.c */ 00012 typedef struct _KDB_KTRAP_FRAME 00013 { 00014 KTRAP_FRAME Tf; 00015 ULONG Cr0; 00016 ULONG Cr1; /* reserved/unused */ 00017 ULONG Cr2; 00018 ULONG Cr3; 00019 ULONG Cr4; 00020 } KDB_KTRAP_FRAME, *PKDB_KTRAP_FRAME; 00021 00022 typedef enum _KDB_BREAKPOINT_TYPE 00023 { 00024 KdbBreakPointNone = 0, 00025 KdbBreakPointSoftware, 00026 KdbBreakPointHardware, 00027 KdbBreakPointTemporary 00028 } KDB_BREAKPOINT_TYPE; 00029 00030 typedef enum _KDB_ACCESS_TYPE 00031 { 00032 KdbAccessRead, 00033 KdbAccessWrite, 00034 KdbAccessReadWrite, 00035 KdbAccessExec 00036 } KDB_ACCESS_TYPE; 00037 00038 typedef struct _KDB_BREAKPOINT 00039 { 00040 KDB_BREAKPOINT_TYPE Type; /* Type of breakpoint */ 00041 BOOLEAN Enabled; /* Whether the bp is enabled */ 00042 ULONG_PTR Address; /* Address of the breakpoint */ 00043 BOOLEAN Global; /* Whether the breakpoint is global or local to a process */ 00044 PEPROCESS Process; /* Owning process */ 00045 PCHAR ConditionExpression; 00046 PVOID Condition; 00047 union { 00048 /* KdbBreakPointSoftware */ 00049 UCHAR SavedInstruction; 00050 /* KdbBreakPointHardware */ 00051 struct { 00052 UCHAR DebugReg : 2; 00053 UCHAR Size : 3; 00054 KDB_ACCESS_TYPE AccessType; 00055 } Hw; 00056 } Data; 00057 } KDB_BREAKPOINT, *PKDB_BREAKPOINT; 00058 00059 typedef enum _KDB_ENTER_CONDITION 00060 { 00061 KdbDoNotEnter, 00062 KdbEnterAlways, 00063 KdbEnterFromKmode, 00064 KdbEnterFromUmode 00065 } KDB_ENTER_CONDITION; 00066 00067 /* These values MUST be nonzero. They're used as bit masks. */ 00068 typedef enum _KDB_OUTPUT_SETTINGS 00069 { 00070 KD_DEBUG_KDSERIAL = 1, 00071 KD_DEBUG_KDNOECHO = 2 00072 } KDB_OUTPUT_SETTINGS; 00073 00074 /* FUNCTIONS *****************************************************************/ 00075 00076 /* from i386/i386-dis.c */ 00077 00078 LONG 00079 KdbpDisassemble( 00080 IN ULONG Address, 00081 IN ULONG IntelSyntax); 00082 00083 LONG 00084 KdbpGetInstLength( 00085 IN ULONG Address); 00086 00087 /* from i386/kdb_help.S */ 00088 00089 VOID NTAPI 00090 KdbpStackSwitchAndCall( 00091 IN PVOID NewStack, 00092 IN VOID (*Function)(VOID)); 00093 00094 /* from kdb_cli.c */ 00095 00096 extern PCHAR KdbInitFileBuffer; 00097 00098 VOID 00099 KdbpCliInit(VOID); 00100 00101 VOID 00102 KdbpCliMainLoop( 00103 IN BOOLEAN EnteredOnSingleStep); 00104 00105 VOID 00106 KdbpCliModuleLoaded( 00107 IN PUNICODE_STRING Name); 00108 00109 VOID 00110 KdbpCliInterpretInitFile(VOID); 00111 00112 VOID 00113 KdbpPrint( 00114 IN PCHAR Format, 00115 IN ... OPTIONAL); 00116 00117 /* from kdb_expr.c */ 00118 00119 BOOLEAN 00120 KdbpRpnEvaluateExpression( 00121 IN PCHAR Expression, 00122 IN PKDB_KTRAP_FRAME TrapFrame, 00123 OUT PULONGLONG Result, 00124 OUT PLONG ErrOffset OPTIONAL, 00125 OUT PCHAR ErrMsg OPTIONAL); 00126 00127 PVOID 00128 KdbpRpnParseExpression( 00129 IN PCHAR Expression, 00130 OUT PLONG ErrOffset OPTIONAL, 00131 OUT PCHAR ErrMsg OPTIONAL); 00132 00133 BOOLEAN 00134 KdbpRpnEvaluateParsedExpression( 00135 IN PVOID Expression, 00136 IN PKDB_KTRAP_FRAME TrapFrame, 00137 OUT PULONGLONG Result, 00138 OUT PLONG ErrOffset OPTIONAL, 00139 OUT PCHAR ErrMsg OPTIONAL); 00140 00141 /* from kdb_symbols.c */ 00142 00143 BOOLEAN 00144 KdbpSymFindModule( 00145 IN PVOID Address OPTIONAL, 00146 IN LPCWSTR Name OPTIONAL, 00147 IN INT Index OPTIONAL, 00148 OUT PLDR_DATA_TABLE_ENTRY* pLdrEntry); 00149 00150 /* from kdb.c */ 00151 00152 extern PEPROCESS KdbCurrentProcess; 00153 extern PETHREAD KdbCurrentThread; 00154 extern LONG KdbLastBreakPointNr; 00155 extern ULONG KdbNumSingleSteps; 00156 extern BOOLEAN KdbSingleStepOver; 00157 extern PKDB_KTRAP_FRAME KdbCurrentTrapFrame; 00158 extern ULONG KdbDebugState; 00159 00160 LONG 00161 KdbpGetNextBreakPointNr( 00162 IN ULONG Start OPTIONAL); 00163 00164 BOOLEAN 00165 KdbpGetBreakPointInfo( 00166 IN ULONG BreakPointNr, 00167 OUT ULONG_PTR *Address OPTIONAL, 00168 OUT KDB_BREAKPOINT_TYPE *Type OPTIONAL, 00169 OUT UCHAR *Size OPTIONAL, 00170 OUT KDB_ACCESS_TYPE *AccessType OPTIONAL, 00171 OUT UCHAR *DebugReg OPTIONAL, 00172 OUT BOOLEAN *Enabled OPTIONAL, 00173 OUT BOOLEAN *Global OPTIONAL, 00174 OUT PEPROCESS *Process OPTIONAL, 00175 OUT PCHAR *ConditionExpression OPTIONAL); 00176 00177 NTSTATUS 00178 KdbpInsertBreakPoint( 00179 IN ULONG_PTR Address, 00180 IN KDB_BREAKPOINT_TYPE Type, 00181 IN UCHAR Size OPTIONAL, 00182 IN KDB_ACCESS_TYPE AccessType OPTIONAL, 00183 IN PCHAR ConditionExpression OPTIONAL, 00184 IN BOOLEAN Global, 00185 OUT PLONG BreakPointNr OPTIONAL); 00186 00187 BOOLEAN 00188 KdbpDeleteBreakPoint( 00189 IN LONG BreakPointNr OPTIONAL, 00190 IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL); 00191 00192 BOOLEAN 00193 KdbpEnableBreakPoint( 00194 IN LONG BreakPointNr OPTIONAL, 00195 IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL); 00196 00197 BOOLEAN 00198 KdbpDisableBreakPoint( 00199 IN LONG BreakPointNr OPTIONAL, 00200 IN OUT PKDB_BREAKPOINT BreakPoint OPTIONAL); 00201 00202 BOOLEAN 00203 KdbpGetEnterCondition( 00204 IN LONG ExceptionNr, 00205 IN BOOLEAN FirstChance, 00206 OUT KDB_ENTER_CONDITION *Condition); 00207 00208 BOOLEAN 00209 KdbpSetEnterCondition( 00210 IN LONG ExceptionNr, 00211 IN BOOLEAN FirstChance, 00212 IN KDB_ENTER_CONDITION Condition); 00213 00214 BOOLEAN 00215 KdbpAttachToThread( 00216 PVOID ThreadId); 00217 00218 BOOLEAN 00219 KdbpAttachToProcess( 00220 PVOID ProcessId); 00221 00222 VOID 00223 NTAPI 00224 KdbpGetCommandLineSettings(PCHAR p1); 00225 00226 KD_CONTINUE_TYPE 00227 KdbEnterDebuggerException(PEXCEPTION_RECORD ExceptionRecord, 00228 KPROCESSOR_MODE PreviousMode, 00229 PCONTEXT Context, 00230 PKTRAP_FRAME TrapFrame, 00231 BOOLEAN FirstChance); 00232 /* other functions */ 00233 00234 NTSTATUS 00235 KdbpSafeReadMemory(OUT PVOID Dest, 00236 IN PVOID Src, 00237 IN ULONG Bytes); 00238 00239 NTSTATUS 00240 KdbpSafeWriteMemory(OUT PVOID Dest, 00241 IN PVOID Src, 00242 IN ULONG Bytes); 00243 00244 #define KdbpGetCharKeyboard(ScanCode) KdbpTryGetCharKeyboard(ScanCode, 0) 00245 CHAR 00246 KdbpTryGetCharKeyboard(PULONG ScanCode, ULONG Retry); 00247 00248 #define KdbpGetCharSerial() KdbpTryGetCharSerial(0) 00249 CHAR 00250 KdbpTryGetCharSerial(ULONG Retry); 00251 00252 VOID 00253 KdbEnter(VOID); 00254 VOID 00255 DbgRDebugInit(VOID); 00256 VOID 00257 DbgShowFiles(VOID); 00258 VOID 00259 DbgEnableFile(PCH Filename); 00260 VOID 00261 DbgDisableFile(PCH Filename); 00262 VOID 00263 KbdDisableMouse(VOID); 00264 VOID 00265 KbdEnableMouse(VOID); Generated on Fri May 25 2012 04:35:52 for ReactOS by
1.7.6.1
|