📄 entry.h
字号:
/****************************************************************************** * * Copyright (c) 2003 Gerhard W. Gruber * * PROJECT: pICE * $Source: /cvsroot/pice/pice/module/entry.h,v $ * $Revision: 1.3 $ * $Date: 2004/02/17 23:07:36 $ * $Author: lightweave $ * $Name: $ * * $Log: entry.h,v $ * Revision 1.3 2004/02/17 23:07:36 lightweave * * Improved the DEBUG facillity and replaced the configuration handler with a * new code which now can read MS Windows INI style files. See CHANGES.txt for * more details. * Also added a macro which prevents compiling for kernels before 2.4.19. * * Revision 1.2 2003/06/18 22:00:22 lightweave * DEBUG and DEBUG_SERIAL added * * *****************************************************************************//*++Copyright (c) 1998-2001 Klaus P. GerlicherModule Name: entry.hAbstract: HEADER for shell.cEnvironment: LINUX 2.2.X Kernel mode onlyAuthor: Klaus P. GerlicherRevision History: 15-Nov-2000: general cleanup of source filesCopyright notice: This file may be distributed under the terms of the GNU Public License.--*/#ifndef _ENTRY_H#define _ENTRY_H// stack frame passed to shell functiontypedef struct _EXCEPTION_FRAME{ USHORT ss; // esp + 0 USHORT ssDummy; USHORT gs; // + 4 USHORT gsDummy; USHORT fs; // + 8 USHORT fsDummy; USHORT es; // + 12 USHORT esDummy; USHORT ds; // + 16 USHORT dsDummy; ULONG edi; // + 20 ULONG esi; // + 24 ULONG ebp; // + 28 ULONG esp; // + 32 ESP before PUSHAD ULONG ebx; // + 36 ULONG edx; // + 40 ULONG ecx; // + 44 ULONG eax; // + 48 ULONG reason_code; // + 52 ULONG error_code; // + 56 although not existent with all faults, it's always artificially created anyhow ULONG eip; // + 60 USHORT cs; // + 64 USHORT csDummy; ULONG eflags; // + 68 ULONG ring3_esp; // + 72 real ESP if CS != current CS (privilege switch); ULONG ring3_ss; // + 76}__attribute__((packed)) EXCEPTION_FRAME;ULONG HandleEntry(EXCEPTION_FRAME* pFrame);void DebuggerEntry(void);extern ULONG CurrentDR0,CurrentDR1,CurrentDR2,CurrentDR3,CurrentDR6,CurrentDR7;extern ULONG CurrentCR0,CurrentCR2,CurrentCR3,CurrentCR4;extern BOOLEAN bControl; // TRUE when CTRL key was pressedextern BOOLEAN bShift; // TRUE when SHIFT key was pressedextern BOOLEAN bAlt; // TRUE when SHIFT key was pressedextern BOOLEAN bNotifyToExit; // TRUE when debugger should leaveextern BOOLEAN bDebuggerHaltState;extern BOOLEAN bHasFixup;extern USHORT OldSelector;extern ULONG OldOffset;extern ULONG g_ulLineNumberStart;extern BOOLEAN bStepThroughSource;extern BOOLEAN bStepInto;#define PICE_MAX_CPUS (32)extern EXCEPTION_FRAME OldFrame[PICE_MAX_CPUS];// there's a copy of these flags in asm_stubs.asm. // !!! KEEP THAT UP TO DATE !!!#define REASON_INT3 (0)#define REASON_SINGLESTEP (1)#define REASON_HOTKEY (2)#define REASON_PAGEFAULT (3)#define REASON_GP_FAULT (4)#define REASON_HARDWARE_BP (5)#define REASON_DOUBLE_FAULT (6)#define REASON_MODULE_LOAD (7)#define REASON_INTERNAL_ERROR (8)#define REASON_SYSCALL (9)#define REASON_STACK_FAULT (10)#define REASON_INVALID_OPCODE_FAULT (11)#define REASON_DIVBYZERO_FAULT (12)#define REASON_TIMER (13)#define REASON_NMI (14)#define REASON_NOT_PRESENT (15)#define REASON_ALIGNMENT (16)#define REASON_BOOT_PARAMS (17)#define REASON_OTHER_CPU (18)void DebuggerHotkey(void);void DebuggerBootParams(void);void InternalError(EXCEPTION_FRAME* pFrame);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -