[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bochs-cvs
Subject:    [Bochs-cvs] CVS: bochs/bx_debug dbg_main.cc,1.45,1.46 debug.h,1.14,1.15 lexer.c,1.11,1.12 lexer.l,1.
From:       Stanislav Shwartsman <sshwarts () users ! sourceforge ! net>
Date:       2006-01-31 19:45:37
Message-ID: E1F41RZ-0003xU-4b () sc8-pr-cvs1 ! sourceforge ! net
[Download RAW message or body]

Update of /cvsroot/bochs/bochs/bx_debug
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12509/bx_debug

Modified Files:
	dbg_main.cc debug.h lexer.c lexer.l parser.c parser.h parser.y 
Log Message:
Available back ability to use eip register as source in 'set reg = <expr>' cmd.
Setting the eip register still not available (deliberatelly).
I don't want to enable it util I find some easy interface to do it.
I don't want to allow setting of part of RIP register using 'set eip=<expr>' and \
leave the upper part unchanged ....

Remove unused test registres from debugger
Fix compilation error in cpu.h
Change trace-on/trace-off commands. Make one 'trace' command with usage of 'trace \
on/trace off' 


Index: dbg_main.cc
===================================================================
RCS file: /cvsroot/bochs/bochs/bx_debug/dbg_main.cc,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- dbg_main.cc	28 Jan 2006 16:16:02 -0000	1.45
+++ dbg_main.cc	31 Jan 2006 19:45:33 -0000	1.46
@@ -543,28 +543,18 @@
   bx_dbg_exit(0);
 }
 
-void bx_dbg_trace_on_command(void)
-{
-  BX_CPU(dbg_cpu)->trace = 1;
-  dbg_printf("Tracing enabled for %s\n", BX_CPU(dbg_cpu)->name);
-}
-
-void bx_dbg_trace_off_command(void)
-{
-  BX_CPU(dbg_cpu)->trace = 0;
-  dbg_printf("Tracing disabled for %s\n", BX_CPU(dbg_cpu)->name);
-}
-
-void bx_dbg_trace_reg_on_command(void)
+void bx_dbg_trace_command(bx_bool enable)
 {
-  BX_CPU(dbg_cpu)->trace_reg = 1;
-  dbg_printf("Register-Tracing enabled for %s\n", BX_CPU(dbg_cpu)->name);
+  BX_CPU(dbg_cpu)->trace = enable;
+  dbg_printf("Tracing %s for %s\n", enable ? "enabled" : "disabled", 
+     BX_CPU(dbg_cpu)->name);
 }
 
-void bx_dbg_trace_reg_off_command(void)
+void bx_dbg_trace_reg_command(bx_bool enable)
 {
-  BX_CPU(dbg_cpu)->trace_reg = 0;
-  dbg_printf("Register-Tracing disabled for %s\n", BX_CPU(dbg_cpu)->name);
+  BX_CPU(dbg_cpu)->trace_reg = enable;
+  dbg_printf("Register-Tracing %s for %s\n", enable ? "enabled" : "disabled", 
+     BX_CPU(dbg_cpu)->name);
 }
 
 void bx_dbg_ptime_command(void)
@@ -2373,26 +2363,6 @@
   if (reti != 1) goto scanf_error;
 
   rets = fgets(tmp_buf, 512, fp); if (!rets) goto eof_error;
-  reti = sscanf(tmp_buf, "tr3:0x%lx", &ul1); cpu.tr3 = ul1;
-  if (reti != 1) goto scanf_error;
-
-  rets = fgets(tmp_buf, 512, fp); if (!rets) goto eof_error;
-  reti = sscanf(tmp_buf, "tr4:0x%lx", &ul1); cpu.tr4 = ul1;
-  if (reti != 1) goto scanf_error;
-
-  rets = fgets(tmp_buf, 512, fp); if (!rets) goto eof_error;
-  reti = sscanf(tmp_buf, "tr5:0x%lx", &ul1); cpu.tr5 = ul1;
-  if (reti != 1) goto scanf_error;
-
-  rets = fgets(tmp_buf, 512, fp); if (!rets) goto eof_error;
-  reti = sscanf(tmp_buf, "tr6:0x%lx", &ul1); cpu.tr6 = ul1;
-  if (reti != 1) goto scanf_error;
-
-  rets = fgets(tmp_buf, 512, fp); if (!rets) goto eof_error;
-  reti = sscanf(tmp_buf, "tr7:0x%lx", &ul1); cpu.tr7 = ul1;
-  if (reti != 1) goto scanf_error;
-
-  rets = fgets(tmp_buf, 512, fp); if (!rets) goto eof_error;
   reti = sscanf(tmp_buf, "cr0:0x%lx", &ul1); cpu.cr0 = ul1;
   if (reti != 1) goto scanf_error;
 
@@ -3241,9 +3211,8 @@
   dbg_printf("h|help - show list of debugger commands\n");
   dbg_printf("h|help command - show short command description\n");
   dbg_printf("-*- Debugger control -*-\n");
-  dbg_printf("    help, q|quit|exit, set, instrument, show, trace-on, \
                trace-off,\n");
-  dbg_printf("    trace-reg-on, trace-reg-off, record, playback,\n");
-  dbg_printf("    load-symbols, slist\n");
+  dbg_printf("    help, q|quit|exit, set, instrument, show, trace, trace-reg,\n");
+  dbg_printf("    record, playback, load-symbols, slist\n");
   dbg_printf("-*- Execution control -*-\n");
   dbg_printf("    c|cont|continue, s|step|stepi, p|n|next, modebp\n");
   dbg_printf("-*- Breakpoint management -*-\n");
@@ -3343,6 +3312,21 @@
   return sreg.sel;
 }
 
+Bit16u bx_dbg_get_ip(void)
+{
+  return (BX_CPU(dbg_cpu)->get_ip() & 0xffff);
+}
+
+Bit32u bx_dbg_get_eip(void)
+{
+  return (BX_CPU(dbg_cpu)->get_ip() & 0xffffffff);
+}
+
+bx_address bx_dbg_get_instruction_pointer(void)
+{
+  return BX_CPU(dbg_cpu)->get_ip();
+}
+
 Bit32u bx_dbg_get_laddr(Bit16u sel, Bit32u ofs)
 {
   if (BX_CPU(dbg_cpu)->protected_mode()) {

Index: debug.h
===================================================================
RCS file: /cvsroot/bochs/bochs/bx_debug/debug.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- debug.h	27 Jan 2006 19:50:00 -0000	1.14
+++ debug.h	31 Jan 2006 19:45:33 -0000	1.15
@@ -61,8 +61,11 @@
   BX_DBG_SREG_GS
 } SRegs;
 
-#define BX_DBG_REG16_IP  0
-#define BX_DBG_REG32_EIP 0
+#if BX_SUPPORT_X86_64
+# define BX_DBG_GEN_REGISTERS 16
+#else
+# define BX_DBG_GEN_REGISTERS 8
+#endif
 
 typedef enum {
   BX_DBG_REG8H_AH,
@@ -149,8 +152,6 @@
   BX_DBG_REG64_R15
 } Regs64;
 
-#define BX_DBG_REG64_RIP 0
-
 #else
 
 typedef enum {
@@ -208,6 +209,9 @@
 #define EMPTY_ARG (-1)
 
 Bit16u bx_dbg_get_selector_value(unsigned int seg_no);
+Bit16u bx_dbg_get_ip (void);
+Bit32u bx_dbg_get_eip(void);
+bx_address bx_dbg_get_intruction_pointer(void);
 Bit8u bx_dbg_get_reg8l_value(unsigned reg);
 Bit8u bx_dbg_get_reg8h_value(unsigned reg);
 Bit16u bx_dbg_get_reg16_value(unsigned reg);
@@ -223,10 +227,8 @@
 char* bx_dbg_disasm_symbolic_address(Bit32u eip, Bit32u base);
 Bit32u bx_dbg_get_symbol_value(char *Symbol);
 void bx_dbg_symbol_command(char* filename, bx_bool global, Bit32u offset);
-void bx_dbg_trace_on_command(void);
-void bx_dbg_trace_off_command(void);
-void bx_dbg_trace_reg_on_command(void);
-void bx_dbg_trace_reg_off_command(void);
+void bx_dbg_trace_command(bx_bool enable);
+void bx_dbg_trace_reg_command(bx_bool enable);
 void bx_dbg_ptime_command(void);
 void bx_dbg_timebp_command(bx_bool absolute, Bit64u time);
 #define MAX_CONCURRENT_BPS 5
@@ -496,7 +498,6 @@
     struct { Bit32u base, limit; } gdtr;
     struct { Bit32u base, limit; } idtr;
     Bit32u dr0, dr1, dr2, dr3, dr6, dr7;
-    Bit32u tr3, tr4, tr5, tr6, tr7;
     Bit32u cr0, cr1, cr2, cr3, cr4;
     unsigned inhibit_mask;
 } bx_dbg_cpu_t;

Index: lexer.c
===================================================================
RCS file: /cvsroot/bochs/bochs/bx_debug/lexer.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- lexer.c	27 Jan 2006 19:50:00 -0000	1.11
+++ lexer.c	31 Jan 2006 19:45:33 -0000	1.12
@@ -303,55 +303,54 @@
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 161
-#define YY_END_OF_BUFFER 162
-static yyconst short int yy_accept[410] =
+#define YY_NUM_RULES 159
+#define YY_END_OF_BUFFER 160
+static yyconst short int yy_accept[401] =
     {   0,
-        0,    0,    0,    0,    0,    0,  162,  159,    1,  157,
[...1047 lines suppressed...]
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 410 )
+		if ( yy_current_state >= 401 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 409);
+	yy_is_jam = (yy_current_state == 400);
 
 	return yy_is_jam ? 0 : yy_current_state;
 	}
@@ -2528,7 +2513,7 @@
 	return 0;
 	}
 #endif
-#line 186 "lexer.l"
+#line 184 "lexer.l"
 
 
 // [A-Za-z_][A-Za-z0-9_]*   { bxlval.sval = strdup(bxtext); \
return(BX_TOKEN_GENERIC); }

Index: lexer.l
===================================================================
RCS file: /cvsroot/bochs/bochs/bx_debug/lexer.l,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- lexer.l	27 Jan 2006 19:50:00 -0000	1.11
+++ lexer.l	31 Jan 2006 19:45:33 -0000	1.12
@@ -93,10 +93,8 @@
 reset           { bxlval.sval = strdup(bxtext); return(BX_TOKEN_RESET); }
 print           { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT); }
 doit            { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DOIT); }
-trace-on        { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEON); }
-trace-off       { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEOFF); }
-trace-reg-on	{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGON); }
-trace-reg-off	{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGOFF); }
+trace           { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACE); }
+trace-reg   	{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREG); }
 switch-mode	{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SWITCH_MODE); }
 size		{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SIZE); }
 ptime           { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); }
@@ -136,7 +134,7 @@
 di              { bxlval.uval = BX_DBG_REG16_DI; return(BX_TOKEN_REG_DI);}
 bp              { bxlval.uval = BX_DBG_REG16_BP; return(BX_TOKEN_REG_BP);}
 sp              { bxlval.uval = BX_DBG_REG16_SP; return(BX_TOKEN_REG_SP);}
-ip              { bxlval.uval = BX_DBG_REG16_IP; return(BX_TOKEN_REG_IP);}
+ip              { bxlval.uval = BX_DBG_GEN_REGISTERS; return(BX_TOKEN_REG_IP);}
 eax             { bxlval.uval = BX_DBG_REG32_EAX; return(BX_TOKEN_REG_EAX);}
 ebx             { bxlval.uval = BX_DBG_REG32_EBX; return(BX_TOKEN_REG_EBX);}
 ecx             { bxlval.uval = BX_DBG_REG32_ECX; return(BX_TOKEN_REG_ECX);}
@@ -145,7 +143,7 @@
 edi             { bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_REG_EDI);}
 ebp             { bxlval.uval = BX_DBG_REG32_EBP; return(BX_TOKEN_REG_EBP);}
 esp             { bxlval.uval = BX_DBG_REG32_ESP; return(BX_TOKEN_REG_ESP);}
-eip             { bxlval.uval = BX_DBG_REG32_EIP; return(BX_TOKEN_REG_EIP);}
+eip             { bxlval.uval = BX_DBG_GEN_REGISTERS; return(BX_TOKEN_REG_EIP);}
 cs              { bxlval.uval = BX_DBG_SREG_CS; return(BX_TOKEN_CS); }
 es              { bxlval.uval = BX_DBG_SREG_ES; return(BX_TOKEN_ES); }
 ss              { bxlval.uval = BX_DBG_SREG_SS; return(BX_TOKEN_SS); }

Index: parser.c
===================================================================
RCS file: /cvsroot/bochs/bochs/bx_debug/parser.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- parser.c	25 Jan 2006 22:19:59 -0000	1.7
+++ parser.c	31 Jan 2006 19:45:33 -0000	1.8
@@ -145,8 +145,8 @@
      BX_TOKEN_STRING = 338,
      BX_TOKEN_DOIT = 339,
      BX_TOKEN_CRC = 340,
-     BX_TOKEN_TRACEON = 341,
-     BX_TOKEN_TRACEOFF = 342,
+     BX_TOKEN_TRACE = 341,
+     BX_TOKEN_TRACEREG = 342,
      BX_TOKEN_SWITCH_MODE = 343,
      BX_TOKEN_SIZE = 344,
      BX_TOKEN_PTIME = 345,
@@ -172,16 +172,14 @@
[...3024 lines suppressed...]
     break;
 
@@ -3265,7 +3252,7 @@
     }
 
 /* Line 999 of yacc.c.  */
-#line 3269 "y.tab.c"
+#line 3256 "y.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3471,7 +3458,7 @@
 }
 
 
-#line 1183 "parser.y"
+#line 1172 "parser.y"
 
 
 #endif  /* if BX_DEBUGGER */

Index: parser.h
===================================================================
RCS file: /cvsroot/bochs/bochs/bx_debug/parser.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- parser.h	25 Jan 2006 22:19:59 -0000	1.7
+++ parser.h	31 Jan 2006 19:45:33 -0000	1.8
@@ -112,8 +112,8 @@
      BX_TOKEN_STRING = 338,
      BX_TOKEN_DOIT = 339,
      BX_TOKEN_CRC = 340,
-     BX_TOKEN_TRACEON = 341,
-     BX_TOKEN_TRACEOFF = 342,
+     BX_TOKEN_TRACE = 341,
+     BX_TOKEN_TRACEREG = 342,
      BX_TOKEN_SWITCH_MODE = 343,
      BX_TOKEN_SIZE = 344,
      BX_TOKEN_PTIME = 345,
@@ -139,16 +139,14 @@
      BX_TOKEN_NE2000 = 365,
      BX_TOKEN_PIC = 366,
      BX_TOKEN_PAGE = 367,
-     BX_TOKEN_TRACEREGON = 368,
-     BX_TOKEN_TRACEREGOFF = 369,
-     BX_TOKEN_HELP = 370,
-     BX_TOKEN_CALC = 371,
-     BX_TOKEN_VGA = 372,
-     BX_TOKEN_RSHIFT = 373,
-     BX_TOKEN_LSHIFT = 374,
-     BX_TOKEN_IVT = 375,
-     NEG = 376,
-     NOT = 377
+     BX_TOKEN_HELP = 368,
+     BX_TOKEN_CALC = 369,
+     BX_TOKEN_VGA = 370,
+     BX_TOKEN_RSHIFT = 371,
+     BX_TOKEN_LSHIFT = 372,
+     BX_TOKEN_IVT = 373,
+     NEG = 374,
+     NOT = 375
    };
 #endif
 #define BX_TOKEN_REG_AL 258
@@ -234,8 +232,8 @@
 #define BX_TOKEN_STRING 338
 #define BX_TOKEN_DOIT 339
 #define BX_TOKEN_CRC 340
-#define BX_TOKEN_TRACEON 341
-#define BX_TOKEN_TRACEOFF 342
+#define BX_TOKEN_TRACE 341
+#define BX_TOKEN_TRACEREG 342
 #define BX_TOKEN_SWITCH_MODE 343
 #define BX_TOKEN_SIZE 344
 #define BX_TOKEN_PTIME 345
@@ -261,16 +259,14 @@
 #define BX_TOKEN_NE2000 365
 #define BX_TOKEN_PIC 366
 #define BX_TOKEN_PAGE 367
-#define BX_TOKEN_TRACEREGON 368
-#define BX_TOKEN_TRACEREGOFF 369
-#define BX_TOKEN_HELP 370
-#define BX_TOKEN_CALC 371
-#define BX_TOKEN_VGA 372
-#define BX_TOKEN_RSHIFT 373
-#define BX_TOKEN_LSHIFT 374
-#define BX_TOKEN_IVT 375
-#define NEG 376
-#define NOT 377
+#define BX_TOKEN_HELP 368
+#define BX_TOKEN_CALC 369
+#define BX_TOKEN_VGA 370
+#define BX_TOKEN_RSHIFT 371
+#define BX_TOKEN_LSHIFT 372
+#define BX_TOKEN_IVT 373
+#define NEG 374
+#define NOT 375
 
 
 
@@ -285,7 +281,7 @@
   bx_num_range uval_range;
 } YYSTYPE;
 /* Line 1252 of yacc.c.  */
-#line 289 "y.tab.h"
+#line 285 "y.tab.h"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1

Index: parser.y
===================================================================
RCS file: /cvsroot/bochs/bochs/bx_debug/parser.y,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- parser.y	25 Jan 2006 22:19:59 -0000	1.8
+++ parser.y	31 Jan 2006 19:45:33 -0000	1.9
@@ -65,7 +65,6 @@
 %token <uval> BX_TOKEN_FS
 %token <uval> BX_TOKEN_GS
 %token <uval> BX_TOKEN_FLAGS
-
 %token <bval> BX_TOKEN_ON
 %token <bval> BX_TOKEN_OFF
 %token <sval> BX_TOKEN_CONTINUE
@@ -116,8 +115,8 @@
 %token <sval> BX_TOKEN_STRING
 %token <sval> BX_TOKEN_DOIT
 %token <sval> BX_TOKEN_CRC
-%token <sval> BX_TOKEN_TRACEON
-%token <sval> BX_TOKEN_TRACEOFF
+%token <sval> BX_TOKEN_TRACE
+%token <sval> BX_TOKEN_TRACEREG
 %token <sval> BX_TOKEN_SWITCH_MODE
 %token <sval> BX_TOKEN_SIZE
 %token <sval> BX_TOKEN_PTIME
@@ -143,8 +142,6 @@
 %token <sval> BX_TOKEN_NE2000
 %token <sval> BX_TOKEN_PIC
 %token <sval> BX_TOKEN_PAGE
-%token <sval> BX_TOKEN_TRACEREGON
-%token <sval> BX_TOKEN_TRACEREGOFF
 %token <sval> BX_TOKEN_HELP
 %token <sval> BX_TOKEN_CALC
 %token <sval> BX_TOKEN_VGA
@@ -192,8 +189,8 @@
     | instrument_command
     | doit_command
     | crc_command
-    | trace_on_command
-    | trace_off_command
+    | trace_command
+    | trace_reg_command
     | ptime_command
     | timebp_command
     | record_command
@@ -205,8 +202,6 @@
     | symbol_command
     | where_command
     | print_string_command
-    | trace_reg_on_command
-    | trace_reg_off_command
     | help_command
     | calc_command
     | 
@@ -283,19 +278,29 @@
 	}
     ;
 
-trace_on_command:
-      BX_TOKEN_TRACEON '\n'
+trace_command:
+      BX_TOKEN_TRACE BX_TOKEN_ON  '\n'
         {
-        bx_dbg_trace_on_command();
+        bx_dbg_trace_command($2);
+        free($1);
+	}
+    | BX_TOKEN_TRACE BX_TOKEN_OFF '\n'
+        {
+        bx_dbg_trace_command($2);
         free($1);
 	}
     ;
 
-trace_off_command:
-      BX_TOKEN_TRACEOFF '\n'
+trace_reg_command:
+      BX_TOKEN_TRACEREG BX_TOKEN_ON  '\n'
         {
-        bx_dbg_trace_off_command();
-        free($1);
+	bx_dbg_trace_reg_command($2);
+	free($1);
+	}
+    | BX_TOKEN_TRACEREG BX_TOKEN_OFF '\n'
+        {
+	bx_dbg_trace_reg_command($2);
+	free($1);
 	}
     ;
 
@@ -422,6 +427,10 @@
 
 set_command:
       BX_TOKEN_SET BX_TOKEN_DISASSEMBLE BX_TOKEN_ON  '\n'
+        {
+        bx_dbg_set_auto_disassemble($3);
+        free($1); free($2);
+        }
     | BX_TOKEN_SET BX_TOKEN_DISASSEMBLE BX_TOKEN_OFF '\n'
         {
         bx_dbg_set_auto_disassemble($3);
@@ -807,22 +816,6 @@
         }
     ;
 
-trace_reg_on_command:
-      BX_TOKEN_TRACEREGON '\n'
-        {
-	bx_dbg_trace_reg_on_command();
-	free($1);
-	}
-    ;
-
-trace_reg_off_command:
-      BX_TOKEN_TRACEREGOFF '\n'
-        {
-	bx_dbg_trace_reg_off_command();
-	free($1);
-	}
-    ;
-
 help_command:
        BX_TOKEN_HELP BX_TOKEN_QUIT '\n'
          {
@@ -884,24 +877,16 @@
          dbg_printf("crc <addr1> <addr2> - show CRC32 for physical memory range \
addr1..addr2\n");  free($1);free($2);
          }
-       | BX_TOKEN_HELP BX_TOKEN_TRACEON '\n'
-         {
-         dbg_printf("trace-on - disassemble every executed instruction\n");
-         free($1);free($2);
-         }
-       | BX_TOKEN_HELP BX_TOKEN_TRACEOFF '\n'
-         {
-         dbg_printf("trace-off - disable instruction tracing\n");
-         free($1);free($2);
-         }
-       | BX_TOKEN_HELP BX_TOKEN_TRACEREGON '\n'
+       | BX_TOKEN_HELP BX_TOKEN_TRACE '\n'
          {
-         dbg_printf("trace-reg-on - print all registers every executed \
instruction\n"); +         dbg_printf("trace on  - print disassembly for every \
executed instruction\n"); +         dbg_printf("trace off - disable instruction \
tracing\n");  free($1);free($2);
          }
-       | BX_TOKEN_HELP BX_TOKEN_TRACEREGOFF '\n'
+       | BX_TOKEN_HELP BX_TOKEN_TRACEREG '\n'
          {
-         dbg_printf("trace-reg-off - disable registers state tracing\n");
+         dbg_printf("trace-reg on  - print all registers before every executed \
instruction\n"); +         dbg_printf("trace-reg off - disable registers state \
tracing\n");  free($1);free($2);
          }
        | BX_TOKEN_HELP BX_TOKEN_DUMP_CPU '\n'
@@ -1140,7 +1125,9 @@
    | BX_TOKEN_8BH_REG                { $$ = bx_dbg_get_reg8h_value($1); }
    | BX_TOKEN_16B_REG                { $$ = bx_dbg_get_reg16_value($1); }
    | BX_TOKEN_32B_REG                { $$ = bx_dbg_get_reg32_value($1); }
-   | BX_TOKEN_SEGREG                { $$ = bx_dbg_get_selector_value($1); }
+   | BX_TOKEN_SEGREG                 { $$ = bx_dbg_get_selector_value($1); }
+   | BX_TOKEN_REG_IP                 { $$ = bx_dbg_get_ip (); }
+   | BX_TOKEN_REG_EIP                { $$ = bx_dbg_get_eip(); }
    | vexpression '+' vexpression     { $$ = $1 + $3; }
    | vexpression '-' vexpression     { $$ = $1 - $3; }
    | vexpression '*' vexpression     { $$ = $1 * $3; }
@@ -1164,7 +1151,9 @@
    | BX_TOKEN_8BH_REG                { $$ = bx_dbg_get_reg8h_value($1); }
    | BX_TOKEN_16B_REG                { $$ = bx_dbg_get_reg16_value($1); }
    | BX_TOKEN_32B_REG                { $$ = bx_dbg_get_reg32_value($1); }
-   | BX_TOKEN_SEGREG                { $$ = bx_dbg_get_selector_value($1);}
+   | BX_TOKEN_SEGREG                 { $$ = bx_dbg_get_selector_value($1); }
+   | BX_TOKEN_REG_IP                 { $$ = bx_dbg_get_ip (); }
+   | BX_TOKEN_REG_EIP                { $$ = bx_dbg_get_eip(); }
    | expression ':' expression       { $$ = bx_dbg_get_laddr ($1, $3); }
    | expression '+' expression       { $$ = $1 + $3; }
    | expression '-' expression       { $$ = $1 - $3; }



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Bochs-cvs mailing list
Bochs-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bochs-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic