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

gdbstub.c File Reference
#include <ntoskrnl.h>
#include <debug.h>

Go to the source code of this file.

Data Structures

struct  PCPU_REGISTER
struct  GSPHWBREAKPOINT
struct  GSPSWBREAKPOINT

Defines

#define NDEBUG
#define NUMREGS   16
#define DR6_BS   0x00004000 /* Single step */
#define DR7_L0   0x00000001 /* Local breakpoint 0 enable */
#define DR7_G0   0x00000002 /* Global breakpoint 0 enable */
#define DR7_L1   0x00000004 /* Local breakpoint 1 enable */
#define DR7_G1   0x00000008 /* Global breakpoint 1 enable */
#define DR7_L2   0x00000010 /* Local breakpoint 2 enable */
#define DR7_G2   0x00000020 /* Global breakpoint 2 enable */
#define DR7_L3   0x00000040 /* Local breakpoint 3 enable */
#define DR7_G3   0x00000080 /* Global breakpoint 3 enable */
#define DR7_LE   0x00000100 /* Local exact breakpoint enable (old) */
#define DR7_GE   0x00000200 /* Global exact breakpoint enable (old) */
#define DR7_GD   0x00002000 /* General detect enable */
#define DR7_TYPE0_MASK   0x00030000 /* Breakpoint 0 condition */
#define DR7_LEN0_MASK   0x000c0000 /* Breakpoint 0 length */
#define DR7_TYPE1_MASK   0x00300000 /* Breakpoint 1 condition */
#define DR7_LEN1_MASK   0x00c00000 /* Breakpoint 1 length */
#define DR7_TYPE2_MASK   0x03000000 /* Breakpoint 2 condition */
#define DR7_LEN2_MASK   0x0c000000 /* Breakpoint 2 length */
#define DR7_TYPE3_MASK   0x30000000 /* Breakpoint 3 condition */
#define DR7_LEN3_MASK   0xc0000000 /* Breakpoint 3 length */
#define DR7_GLOBAL_ENABLE(Bp)   (2 << (2 * (Bp)))
#define DR7_TYPE(Bp, Type)   ((Type) << (16 + 4 * (Bp)))
#define DR7_LEN(Bp, Len)   ((Len) << (18 + 4 * (Bp)))
#define I386_BP_TYPE_EXECUTE   0
#define I386_BP_TYPE_DATA_WRITE   1
#define I386_BP_TYPE_DATA_READWRITE   3
#define I386_OPCODE_INT3   0xcc
#define GDB_ZTYPE_MEMORY_BREAKPOINT   0
#define GDB_ZTYPE_HARDWARE_BREAKPOINT   1
#define GDB_ZTYPE_WRITE_WATCHPOINT   2
#define GDB_ZTYPE_READ_WATCHPOINT   3
#define GDB_ZTYPE_ACCESS_WATCHPOINT   4
#define MAX_HW_BREAKPOINTS   4
#define MAX_SW_BREAKPOINTS   64

Enumerations

enum  REGISTER_NAMES {
  EAX, ECX, EDX, EBX,
  ESP, EBP, ESI, EDI,
  PC, PS, CS, SS,
  DS, ES, FS, GS,
  EAX, ECX, EDX, EBX,
  ESP, EBP, ESI, EDI,
  PC, PS, CS, SS,
  DS, ES, FS, GS
}

Functions

LONG HexValue (CHAR ch)
VOID GdbPutChar (UCHAR Value)
UCHAR GdbGetChar (VOID)
PCHAR GspGetPacket ()
VOID GspPutPacket (PCHAR Buffer)
VOID GspPutPacketNoWait (PCHAR Buffer)
static CHAR GspReadMemSafe (PCHAR Address)
static void GspWriteMemSafe (PCHAR Address, CHAR Ch)
static PCHAR GspMem2Hex (PCHAR Address, PCHAR Buffer, LONG Count, BOOLEAN MayFault)
static ULONG GspWriteMem (PCHAR Address, ULONG Count, BOOLEAN MayFault, CHAR(*GetContent)(PVOID Context, ULONG Offset), PVOID Context)
static CHAR GspHex2MemGetContent (PVOID Context, ULONG Offset)
static PCHAR GspHex2Mem (PCHAR Buffer, PCHAR Address, ULONG Count, BOOLEAN MayFault)
LONG GspHex2Long (PCHAR *Address, PLONG Value)
VOID GspLong2Hex (PCHAR *Address, LONG Value)
static LONG GspGetEspFromTrapFrame (PKTRAP_FRAME TrapFrame)
static VOID GspGetRegisters (PCHAR Address, PKTRAP_FRAME TrapFrame)
VOID GspSetRegistersInTrapFrame (PCHAR Address, PCONTEXT Context, PKTRAP_FRAME TrapFrame)
VOID GspSetSingleRegisterInTrapFrame (PCHAR Address, LONG Number, PCONTEXT Context, PKTRAP_FRAME TrapFrame)
BOOLEAN GspFindThread (PCHAR Data, PETHREAD *Thread)
VOID GspSetThread (PCHAR Request)
VOID GspQuery (PCHAR Request)
VOID GspQueryThreadStatus (PCHAR Request)
static void GspSetHwBreakpoint (ULONG Type, ULONG_PTR Address, ULONG Length)
static void GspRemoveHwBreakpoint (ULONG Type, ULONG_PTR Address, ULONG Length)
static BOOLEAN GspFindSwBreakpoint (ULONG_PTR Address, PULONG PIndex)
static void GspSetSwBreakpoint (ULONG_PTR Address)
static void GspRemoveSwBreakpoint (ULONG_PTR Address)
static void GspLoadHwBreakpoint (PKTRAP_FRAME TrapFrame, unsigned BpIndex, ULONG_PTR Address, ULONG Length, ULONG Type)
static void GspLoadSwBreakpoint (ULONG Index)
static void GspLoadBreakpoints (PKTRAP_FRAME TrapFrame)
static void GspUnloadBreakpoints (void)
static void GspStopReply (NTSTATUS ExceptionCode, PKTRAP_FRAME TrapFrame)
KD_CONTINUE_TYPE NTAPI KdpGdbEnterDebuggerException (PEXCEPTION_RECORD ExceptionRecord, PCONTEXT Context, PKTRAP_FRAME TrapFrame)
BOOLEAN NTAPI GspBreakIn (PKINTERRUPT Interrupt, PVOID ServiceContext)
VOID NTAPI KdpGdbDebugPrint (PCH Message, ULONG Length)
VOID NTAPI KdpGdbStubInit (PKD_DISPATCH_TABLE WrapperTable, ULONG BootPhase)

Variables

static BOOLEAN GspInitialized
static BOOLEAN GspRemoteDebug
static CONST CHAR HexChars [] = "0123456789abcdef"
static PETHREAD GspRunThread
static PETHREAD GspDbgThread
static PETHREAD GspEnumThread
static FAST_MUTEX GspLock
LIST_ENTRY PsActiveProcessHead
KD_PORT_INFORMATION GdbPortInfo = { 2, 115200, 0 }
static CHAR GspInBuffer [1000]
static CHAR GspOutBuffer [1000]
static CPU_REGISTER GspRegisters [NUMREGS]
static PCHAR GspThreadStates [DeferredReady+1]
static volatile BOOLEAN GspMemoryError = FALSE
static unsigned GspHwBreakpointCount = 0
static GSPHWBREAKPOINT GspHwBreakpoints [MAX_HW_BREAKPOINTS]
static unsigned GspSwBreakpointCount = 0
static GSPSWBREAKPOINT GspSwBreakpoints [MAX_SW_BREAKPOINTS]

Generated on Sun May 27 2012 06:07:25 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.