ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

kdb.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.