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

📄 common.h

📁 给予GTK开发的调试工具
💻 H
字号:
//	bfe2 - globals//	Copyright (c) 1999-2003 Brand Huntsman and Lee Salzman//#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <signal.h>#include <ctype.h>#include <sys/types.h>#include <sys/time.h>#include <sys/stat.h>#include <gtk/gtk.h>#define RC_PATH ".bferc"#define HISTORY_PATH "__bfe.log__"#define MAX_BREAKPOINTS 30#define MAX_WATCHPOINTS 30// default preferences#define DEF_HISLEN 50#define DEF_STACKABOVE 8#define DEF_STACKBELOW 4#define DEF_STEPLOCK 2#define DEF_NEXTLOCK 2#define DEF_RELOAD_BP 1#define DEF_RELOAD_WP 1#define DEF_PAGE_TAB 0// text entry and button height#define WIDGET_HEIGHT 20// cpu state widgets#define WLEN_REGISTER 85#define WLEN_SEGMENT 110#define WLEN_DTABLE 140#define STACK_LIST_W 150#define STACK_LIST_H 140#define FLAGS_LIST_W 160#define FLAGS_LIST_H 210// string lengths#define LEN_RCPATH 200#define LEN_BUFFER 200#define LEN_NUMBER 16#define LEN_ADDRESS 18#define LEN_INSTRUCTION 128#define LEN_STRUCT_NAME 128#define LEN_FIELD_NAME 128#ifndef uint32	typedef unsigned int uint32;#endif#ifndef int32	typedef int int32;#endif#ifndef uint64	typedef unsigned long long uint64;#endif#ifndef int64	typedef long long int64;#endif//// main.c//extern GtkWidget *bochs_button, *refreshall_button, *notebook;extern uint show_state;//// misc.c////// gtk.c//typedef enum { HORIZONTAL, VERTICAL } e_orientation;struct s_bgroup_button {	GtkWidget *widget;	guint id;};typedef struct s_bgroup {	void (*callback)( struct s_bgroup *group );	uint current;	uint nr_buttons;	struct s_bgroup_button button[1];} s_bgroup;//// bochs.c//extern FILE *writepipe, *readpipe;extern uint bochs_running, bochs_offline, p_step;extern int bochs_pid;//// ctrl.c//extern GtkWidget *physical_text, *virtual_text, *instruction_text;extern uint32 i_virtual_segment, i_virtual_offset, i_physical_address;extern char i_bytes[LEN_INSTRUCTION], i_description[LEN_INSTRUCTION];//// state.c//typedef struct s_segment {	uint32 segment;	uint32 descriptor[2];	uint valid;} s_segment;typedef struct s_table {	uint32 base;	uint32 limit;} s_table;typedef struct s_cpu {	uint32 eax;	uint32 ebx;	uint32 ecx;	uint32 edx;	uint32 ebp;	uint32 esi;	uint32 edi;	uint32 esp;	uint32 eflags;	uint32 eip;	struct s_segment cs;	struct s_segment ss;	struct s_segment ds;	struct s_segment es;	struct s_segment fs;	struct s_segment gs;	struct s_segment ldtr;	struct s_segment tr;	struct s_table gdtr;	struct s_table idtr;	uint32 dr0;	uint32 dr1;	uint32 dr2;	uint32 dr3;	uint32 dr4;	uint32 dr5;	uint32 dr6;	uint32 dr7;	uint32 tr3;	uint32 tr4;	uint32 tr5;	uint32 tr6;	uint32 tr7;	uint32 cr0;	uint32 cr1;	uint32 cr2;	uint32 cr3;	uint32 cr4;	uint inhibit;} s_cpu;extern struct s_cpu cpu;//// breakpoints.c//enum { BP_PHYSICAL, BP_LINEAR, BP_VIRTUAL };		// toggle grouptypedef enum { BP_UPDATE, BP_REDRAW } e_bp_mode;typedef struct s_breakpoint {	uint number;	uint type;	uint enabled;	uint32 segment;	uint32 offset;} s_breakpoint;extern struct s_breakpoint breakpoints[MAX_BREAKPOINTS];//// watchpoints.c//enum { WP_READ, WP_WRITE };				// toggle grouptypedef enum { WP_UPDATE, WP_REDRAW } e_wp_mode;typedef struct s_watchpoint {	uint type;	uint enabled;	uint32 offset;	uint32 value;	uint value_size;} s_watchpoint;extern struct s_watchpoint watchpoints[MAX_WATCHPOINTS];//// memory.c//enum { MT_PHYSICAL, MT_LINEAR };			// toggle groupenum { MS_BYTE, MS_WORD, MS_DWORD, MS_QWORD };		// toggle groupenum { MF_HEX, MF_DEC, MF_UDEC, MF_BIN, MF_OCT };	// toggle grouptypedef struct s_memwin {	GtkWidget *window, *close_button, *refresh_button;	GtkCList *list;	guint id;	uint32 base;	uint nr_units;	uint unit_type;	uint unit_size;	uint unit_format;	struct s_memwin *prev;	struct s_memwin *next;} s_memwin;extern struct s_memwin *memwin_head, *memwin_tail;//// structures.c//typedef struct s_field {	char name[LEN_FIELD_NAME];	uint size;	struct s_field *prev;	struct s_field *next;} s_field;typedef struct s_structwin {	GtkWidget *window, *close_button, *refresh_button;	GtkWidget *start_text, *total_text;	GtkCList *list;	char name[LEN_STRUCT_NAME];	uint32 base;	uint nr_elts;	uint nr_fields;	struct s_field *fields_head;	struct s_field *fields_tail;	struct s_structwin *prev;	struct s_structwin *next;} s_structwin;extern struct s_structwin *structwin_head, *structwin_tail;//// prefs.c//extern uint h_maxlen, stack_above, stack_below, tracing, steplock_time, nextlock_time;extern uint reload_breakpoints, reload_watchpoints;//// history.c//

⌨️ 快捷键说明

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