⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug.h

📁 u-boot1.3.0的原码,从配了网络驱动和FLASH的驱动,并该用ESC竟如
💻 H
字号:
/******************************************************************************			Realmode X86 Emulator Library**		Copyright (C) 1991-2004 SciTech Software, Inc.*		     Copyright (C) David Mosberger-Tang*		       Copyright (C) 1999 Egbert Eich**  ========================================================================**  Permission to use, copy, modify, distribute, and sell this software and*  its documentation for any purpose is hereby granted without fee,*  provided that the above copyright notice appear in all copies and that*  both that copyright notice and this permission notice appear in*  supporting documentation, and that the name of the authors not be used*  in advertising or publicity pertaining to distribution of the software*  without specific, written prior permission.	The authors makes no*  representations about the suitability of this software for any purpose.*  It is provided "as is" without express or implied warranty.**  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR*  PERFORMANCE OF THIS SOFTWARE.**  ========================================================================** Language:	ANSI C* Environment:	Any* Developer:	Kendall Bennett** Description:	Header file for debug definitions.*****************************************************************************/#ifndef __X86EMU_DEBUG_H#define __X86EMU_DEBUG_H/*---------------------- Macros and type definitions ----------------------*//* checks to be enabled for "runtime" */#define CHECK_IP_FETCH_F		0x1#define CHECK_SP_ACCESS_F		0x2#define CHECK_MEM_ACCESS_F		0x4	/*using regular linear pointer */#define CHECK_DATA_ACCESS_F		0x8	/*using segment:offset */#ifdef DEBUG# define CHECK_IP_FETCH()		(M.x86.check & CHECK_IP_FETCH_F)# define CHECK_SP_ACCESS()		(M.x86.check & CHECK_SP_ACCESS_F)# define CHECK_MEM_ACCESS()		(M.x86.check & CHECK_MEM_ACCESS_F)# define CHECK_DATA_ACCESS()		(M.x86.check & CHECK_DATA_ACCESS_F)#else# define CHECK_IP_FETCH()# define CHECK_SP_ACCESS()# define CHECK_MEM_ACCESS()# define CHECK_DATA_ACCESS()#endif#ifdef DEBUG# define DEBUG_INSTRUMENT()	(M.x86.debug & DEBUG_INSTRUMENT_F)# define DEBUG_DECODE()		(M.x86.debug & DEBUG_DECODE_F)# define DEBUG_TRACE()		(M.x86.debug & DEBUG_TRACE_F)# define DEBUG_STEP()		(M.x86.debug & DEBUG_STEP_F)# define DEBUG_DISASSEMBLE()	(M.x86.debug & DEBUG_DISASSEMBLE_F)# define DEBUG_BREAK()		(M.x86.debug & DEBUG_BREAK_F)# define DEBUG_SVC()		(M.x86.debug & DEBUG_SVC_F)# define DEBUG_SAVE_IP_CS()	(M.x86.debug & DEBUG_SAVE_CS_IP)# define DEBUG_FS()		(M.x86.debug & DEBUG_FS_F)# define DEBUG_PROC()		(M.x86.debug & DEBUG_PROC_F)# define DEBUG_SYSINT()		(M.x86.debug & DEBUG_SYSINT_F)# define DEBUG_TRACECALL()	(M.x86.debug & DEBUG_TRACECALL_F)# define DEBUG_TRACECALLREGS()	(M.x86.debug & DEBUG_TRACECALL_REGS_F)# define DEBUG_SYS()		(M.x86.debug & DEBUG_SYS_F)# define DEBUG_MEM_TRACE()	(M.x86.debug & DEBUG_MEM_TRACE_F)# define DEBUG_IO_TRACE()	(M.x86.debug & DEBUG_IO_TRACE_F)# define DEBUG_DECODE_NOPRINT() (M.x86.debug & DEBUG_DECODE_NOPRINT_F)#else# define DEBUG_INSTRUMENT()	0# define DEBUG_DECODE()		0# define DEBUG_TRACE()		0# define DEBUG_STEP()		0# define DEBUG_DISASSEMBLE()	0# define DEBUG_BREAK()		0# define DEBUG_SVC()		0# define DEBUG_SAVE_IP_CS()	0# define DEBUG_FS()		0# define DEBUG_PROC()		0# define DEBUG_SYSINT()		0# define DEBUG_TRACECALL()	0# define DEBUG_TRACECALLREGS()	0# define DEBUG_SYS()		0# define DEBUG_MEM_TRACE()	0# define DEBUG_IO_TRACE()	0# define DEBUG_DECODE_NOPRINT() 0#endif#ifdef DEBUG# define DECODE_PRINTF(x)	if (DEBUG_DECODE()) \				    x86emu_decode_printf(x)# define DECODE_PRINTF2(x,y)	if (DEBUG_DECODE()) \				    x86emu_decode_printf2(x,y)/* * The following allow us to look at the bytes of an instruction.  The * first INCR_INSTRN_LEN, is called everytime bytes are consumed in * the decoding process.  The SAVE_IP_CS is called initially when the * major opcode of the instruction is accessed. */#define INC_DECODED_INST_LEN(x)			    \    if (DEBUG_DECODE())				    \	x86emu_inc_decoded_inst_len(x)#define SAVE_IP_CS(x,y)						\    if (DEBUG_DECODE() | DEBUG_TRACECALL() | DEBUG_BREAK() \	      | DEBUG_IO_TRACE() | DEBUG_SAVE_IP_CS()) { \	M.x86.saved_cs = x;					\	M.x86.saved_ip = y;					\    }#else# define INC_DECODED_INST_LEN(x)# define DECODE_PRINTF(x)# define DECODE_PRINTF2(x,y)# define SAVE_IP_CS(x,y)#endif#ifdef DEBUG#define TRACE_REGS()					    \    if (DEBUG_DISASSEMBLE()) {				    \	x86emu_just_disassemble();			    \	goto EndOfTheInstructionProcedure;		    \    }							    \    if (DEBUG_TRACE() || DEBUG_DECODE()) X86EMU_trace_regs()#else# define TRACE_REGS()#endif#ifdef DEBUG# define SINGLE_STEP()	    if (DEBUG_STEP()) x86emu_single_step()#else# define SINGLE_STEP()#endif#define TRACE_AND_STEP()    \    TRACE_REGS();	    \    SINGLE_STEP()#ifdef DEBUG# define START_OF_INSTR()# define END_OF_INSTR()	    EndOfTheInstructionProcedure: x86emu_end_instr();# define END_OF_INSTR_NO_TRACE()    x86emu_end_instr();#else# define START_OF_INSTR()# define END_OF_INSTR()# define END_OF_INSTR_NO_TRACE()#endif#ifdef DEBUG# define  CALL_TRACE(u,v,w,x,s)					\    if (DEBUG_TRACECALLREGS())					\	x86emu_dump_regs();					\    if (DEBUG_TRACECALL())					\	printk("%04x:%04x: CALL %s%04x:%04x\n", u , v, s, w, x);# define RETURN_TRACE(n,u,v)					\    if (DEBUG_TRACECALLREGS())					\	x86emu_dump_regs();					\    if (DEBUG_TRACECALL())					\	printk("%04x:%04x: %s\n",u,v,n);#else# define CALL_TRACE(u,v,w,x,s)# define RETURN_TRACE(n,u,v)#endif#ifdef DEBUG#define DB(x)	x#else#define DB(x)#endif/*-------------------------- Function Prototypes --------------------------*/#ifdef	__cplusplusextern "C" {			/* Use "C" linkage when in C++ mode */#endif	extern void x86emu_inc_decoded_inst_len(int x);	extern void x86emu_decode_printf(char *x);	extern void x86emu_decode_printf2(char *x, int y);	extern void x86emu_just_disassemble(void);	extern void x86emu_single_step(void);	extern void x86emu_end_instr(void);	extern void x86emu_dump_regs(void);	extern void x86emu_dump_xregs(void);	extern void x86emu_print_int_vect(u16 iv);	extern void x86emu_instrument_instruction(void);	extern void x86emu_check_ip_access(void);	extern void x86emu_check_sp_access(void);	extern void x86emu_check_mem_access(u32 p);	extern void x86emu_check_data_access(uint s, uint o);#ifdef	__cplusplus}				/* End of "C" linkage for C++	    */#endif#endif				/* __X86EMU_DEBUG_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -