updated docs and dbger help

This commit is contained in:
Stanislav Shwartsman 2009-10-31 17:46:12 +00:00
parent 14a7b3f4a8
commit e6da2ce8e8
3 changed files with 82 additions and 87 deletions

View File

@ -762,12 +762,12 @@ static const yytype_uint16 yyrline[] =
883, 888, 893, 898, 903, 908, 913, 918, 923, 928,
933, 939, 945, 951, 959, 964, 969, 974, 979, 984,
989, 994, 999, 1004, 1009, 1014, 1019, 1024, 1029, 1034,
1043, 1052, 1058, 1071, 1079, 1089, 1094, 1110, 1122, 1132,
1137, 1145, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
1181, 1182, 1183, 1184, 1189, 1190, 1191, 1192, 1193, 1194,
1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212
1043, 1052, 1058, 1071, 1076, 1086, 1091, 1107, 1119, 1129,
1134, 1142, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
1178, 1179, 1180, 1181, 1186, 1187, 1188, 1189, 1190, 1191,
1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201,
1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209
};
#endif
@ -3246,7 +3246,7 @@ yyreduce:
case 193:
#line 1005 "parser.y"
{
dbg_printf("fp|fpu| - print FPU state\n");
dbg_printf("fp|fpu - print FPU state\n");
free((yyvsp[(1) - (3)].sval));free((yyvsp[(2) - (3)].sval));
}
break;
@ -3343,16 +3343,13 @@ yyreduce:
case 203:
#line 1072 "parser.y"
{
dbg_printf("instrument start - calls bx_instr_start() callback\n");
dbg_printf("instrument stop - calls bx_instr_stop () callback\n");
dbg_printf("instrument reset - calls bx_instr_reset() callback\n");
dbg_printf("instrument print - calls bx_instr_print() callback\n");
dbg_printf("instrument <command> - calls BX_INSTR_DEBUG_CMD instrumentation callback with <command>\n");
free((yyvsp[(1) - (3)].sval));free((yyvsp[(2) - (3)].sval));
}
break;
case 204:
#line 1080 "parser.y"
#line 1077 "parser.y"
{
dbg_printf("set <regname> = <expr> - set register value to expression\n");
dbg_printf("set $reg = val - set CPU register to value val\n");
@ -3365,7 +3362,7 @@ yyreduce:
break;
case 205:
#line 1090 "parser.y"
#line 1087 "parser.y"
{
dbg_printf("page <laddr> - show linear to physical xlation for linear address laddr\n");
free((yyvsp[(1) - (3)].sval));free((yyvsp[(2) - (3)].sval));
@ -3373,7 +3370,7 @@ yyreduce:
break;
case 206:
#line 1095 "parser.y"
#line 1092 "parser.y"
{
dbg_printf("info break - show information about current breakpoint status\n");
dbg_printf("info idt - show interrupt descriptor table\n");
@ -3392,7 +3389,7 @@ yyreduce:
break;
case 207:
#line 1111 "parser.y"
#line 1108 "parser.y"
{
dbg_printf("show <command> - toggles show symbolic info (calls to begin with)\n");
dbg_printf("show - shows current show mode\n");
@ -3407,7 +3404,7 @@ yyreduce:
break;
case 208:
#line 1123 "parser.y"
#line 1120 "parser.y"
{
dbg_printf("calc|? <expr> - calculate a expression and display the result.\n");
dbg_printf(" 'expr' can reference any general-purpose and segment\n");
@ -3420,7 +3417,7 @@ yyreduce:
break;
case 209:
#line 1133 "parser.y"
#line 1130 "parser.y"
{
bx_dbg_print_help();
free((yyvsp[(1) - (3)].sval));free((yyvsp[(2) - (3)].sval));
@ -3428,7 +3425,7 @@ yyreduce:
break;
case 210:
#line 1138 "parser.y"
#line 1135 "parser.y"
{
bx_dbg_print_help();
free((yyvsp[(1) - (2)].sval));
@ -3436,7 +3433,7 @@ yyreduce:
break;
case 211:
#line 1146 "parser.y"
#line 1143 "parser.y"
{
bx_dbg_calc_command((yyvsp[(2) - (3)].uval));
free((yyvsp[(1) - (3)].sval));
@ -3444,238 +3441,238 @@ yyreduce:
break;
case 212:
#line 1163 "parser.y"
#line 1160 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (1)].uval); }
break;
case 213:
#line 1164 "parser.y"
#line 1161 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg8l_value((yyvsp[(1) - (1)].uval)); }
break;
case 214:
#line 1165 "parser.y"
#line 1162 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg8h_value((yyvsp[(1) - (1)].uval)); }
break;
case 215:
#line 1166 "parser.y"
#line 1163 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg16_value((yyvsp[(1) - (1)].uval)); }
break;
case 216:
#line 1167 "parser.y"
#line 1164 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg32_value((yyvsp[(1) - (1)].uval)); }
break;
case 217:
#line 1168 "parser.y"
#line 1165 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg64_value((yyvsp[(1) - (1)].uval)); }
break;
case 218:
#line 1169 "parser.y"
#line 1166 "parser.y"
{ (yyval.uval) = bx_dbg_get_selector_value((yyvsp[(1) - (1)].uval)); }
break;
case 219:
#line 1170 "parser.y"
#line 1167 "parser.y"
{ (yyval.uval) = bx_dbg_get_ip (); }
break;
case 220:
#line 1171 "parser.y"
#line 1168 "parser.y"
{ (yyval.uval) = bx_dbg_get_eip(); }
break;
case 221:
#line 1172 "parser.y"
#line 1169 "parser.y"
{ (yyval.uval) = bx_dbg_get_instruction_pointer(); }
break;
case 222:
#line 1173 "parser.y"
#line 1170 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) + (yyvsp[(3) - (3)].uval); }
break;
case 223:
#line 1174 "parser.y"
#line 1171 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) - (yyvsp[(3) - (3)].uval); }
break;
case 224:
#line 1175 "parser.y"
#line 1172 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) * (yyvsp[(3) - (3)].uval); }
break;
case 225:
#line 1176 "parser.y"
#line 1173 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) / (yyvsp[(3) - (3)].uval); }
break;
case 226:
#line 1177 "parser.y"
#line 1174 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) >> (yyvsp[(3) - (3)].uval); }
break;
case 227:
#line 1178 "parser.y"
#line 1175 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) << (yyvsp[(3) - (3)].uval); }
break;
case 228:
#line 1179 "parser.y"
#line 1176 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) | (yyvsp[(3) - (3)].uval); }
break;
case 229:
#line 1180 "parser.y"
#line 1177 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) ^ (yyvsp[(3) - (3)].uval); }
break;
case 230:
#line 1181 "parser.y"
#line 1178 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) & (yyvsp[(3) - (3)].uval); }
break;
case 231:
#line 1182 "parser.y"
#line 1179 "parser.y"
{ (yyval.uval) = !(yyvsp[(2) - (2)].uval); }
break;
case 232:
#line 1183 "parser.y"
#line 1180 "parser.y"
{ (yyval.uval) = -(yyvsp[(2) - (2)].uval); }
break;
case 233:
#line 1184 "parser.y"
#line 1181 "parser.y"
{ (yyval.uval) = (yyvsp[(2) - (3)].uval); }
break;
case 234:
#line 1189 "parser.y"
#line 1186 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (1)].uval); }
break;
case 235:
#line 1190 "parser.y"
#line 1187 "parser.y"
{ (yyval.uval) = bx_dbg_get_symbol_value((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval));}
break;
case 236:
#line 1191 "parser.y"
#line 1188 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg8l_value((yyvsp[(1) - (1)].uval)); }
break;
case 237:
#line 1192 "parser.y"
#line 1189 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg8h_value((yyvsp[(1) - (1)].uval)); }
break;
case 238:
#line 1193 "parser.y"
#line 1190 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg16_value((yyvsp[(1) - (1)].uval)); }
break;
case 239:
#line 1194 "parser.y"
#line 1191 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg32_value((yyvsp[(1) - (1)].uval)); }
break;
case 240:
#line 1195 "parser.y"
#line 1192 "parser.y"
{ (yyval.uval) = bx_dbg_get_reg64_value((yyvsp[(1) - (1)].uval)); }
break;
case 241:
#line 1196 "parser.y"
#line 1193 "parser.y"
{ (yyval.uval) = bx_dbg_get_selector_value((yyvsp[(1) - (1)].uval)); }
break;
case 242:
#line 1197 "parser.y"
#line 1194 "parser.y"
{ (yyval.uval) = bx_dbg_get_ip (); }
break;
case 243:
#line 1198 "parser.y"
#line 1195 "parser.y"
{ (yyval.uval) = bx_dbg_get_eip(); }
break;
case 244:
#line 1199 "parser.y"
#line 1196 "parser.y"
{ (yyval.uval) = bx_dbg_get_instruction_pointer(); }
break;
case 245:
#line 1200 "parser.y"
#line 1197 "parser.y"
{ (yyval.uval) = bx_dbg_get_laddr ((yyvsp[(1) - (3)].uval), (yyvsp[(3) - (3)].uval)); }
break;
case 246:
#line 1201 "parser.y"
#line 1198 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) + (yyvsp[(3) - (3)].uval); }
break;
case 247:
#line 1202 "parser.y"
#line 1199 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) - (yyvsp[(3) - (3)].uval); }
break;
case 248:
#line 1203 "parser.y"
#line 1200 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) * (yyvsp[(3) - (3)].uval); }
break;
case 249:
#line 1204 "parser.y"
#line 1201 "parser.y"
{ (yyval.uval) = ((yyvsp[(3) - (3)].uval) != 0) ? (yyvsp[(1) - (3)].uval) / (yyvsp[(3) - (3)].uval) : 0; }
break;
case 250:
#line 1205 "parser.y"
#line 1202 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) >> (yyvsp[(3) - (3)].uval); }
break;
case 251:
#line 1206 "parser.y"
#line 1203 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) << (yyvsp[(3) - (3)].uval); }
break;
case 252:
#line 1207 "parser.y"
#line 1204 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) | (yyvsp[(3) - (3)].uval); }
break;
case 253:
#line 1208 "parser.y"
#line 1205 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) ^ (yyvsp[(3) - (3)].uval); }
break;
case 254:
#line 1209 "parser.y"
#line 1206 "parser.y"
{ (yyval.uval) = (yyvsp[(1) - (3)].uval) & (yyvsp[(3) - (3)].uval); }
break;
case 255:
#line 1210 "parser.y"
#line 1207 "parser.y"
{ (yyval.uval) = !(yyvsp[(2) - (2)].uval); }
break;
case 256:
#line 1211 "parser.y"
#line 1208 "parser.y"
{ (yyval.uval) = -(yyvsp[(2) - (2)].uval); }
break;
case 257:
#line 1212 "parser.y"
#line 1209 "parser.y"
{ (yyval.uval) = (yyvsp[(2) - (3)].uval); }
break;
/* Line 1267 of yacc.c. */
#line 3679 "y.tab.c"
#line 3676 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@ -3889,7 +3886,7 @@ yyreturn:
}
#line 1215 "parser.y"
#line 1212 "parser.y"
#endif /* if BX_DEBUGGER */

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: parser.y,v 1.37 2009-10-29 15:49:50 sshwarts Exp $
// $Id: parser.y,v 1.38 2009-10-31 17:46:12 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
%{
@ -1003,7 +1003,7 @@ help_command:
}
| BX_TOKEN_HELP BX_TOKEN_FPU '\n'
{
dbg_printf("fp|fpu| - print FPU state\n");
dbg_printf("fp|fpu - print FPU state\n");
free($1);free($2);
}
| BX_TOKEN_HELP BX_TOKEN_MMX '\n'
@ -1070,10 +1070,7 @@ help_command:
}
| BX_TOKEN_HELP BX_TOKEN_INSTRUMENT '\n'
{
dbg_printf("instrument start - calls bx_instr_start() callback\n");
dbg_printf("instrument stop - calls bx_instr_stop () callback\n");
dbg_printf("instrument reset - calls bx_instr_reset() callback\n");
dbg_printf("instrument print - calls bx_instr_print() callback\n");
dbg_printf("instrument <command> - calls BX_INSTR_DEBUG_CMD instrumentation callback with <command>\n");
free($1);free($2);
}
| BX_TOKEN_HELP BX_TOKEN_SET '\n'

View File

@ -1,7 +1,7 @@
<!--
================================================================
doc/docbook/user/user.dbk
$Id: user.dbk,v 1.266 2009-10-29 15:49:50 sshwarts Exp $
$Id: user.dbk,v 1.267 2009-10-31 17:46:12 sshwarts Exp $
This is the top level file for the Bochs Users Manual.
================================================================
@ -241,7 +241,7 @@ Bochs only provides you with the "virtual hardware", and it is up to you to do t
If you are running on x86 hardware, you have a range of choices.
Check the installation section for your host platform to see what options
Bochs supports on your platform. If the most important factor is speed,
you may want to try a virtualization product instead of Bochs (VMware, plex86).
you may want to try a virtualization product instead of Bochs (VMware, VirtualBox, plex86).
</para>
<para>
@ -361,7 +361,7 @@ currently work with.
<row>
<entry>x86-64 Extensions Emulation</entry>
<entry>Yes</entry>
<entry>Bochs can be configured to emulate x86-64 with all Intel (CMPXCHG16B instruction) or AMD (RDTSCP instruction) extensions.</entry>
<entry>Bochs can be configured to emulate x86-64 with many recent Intel or AMD extensions.</entry>
</row>
<row>
<entry>Command Line Debugger</entry>
@ -553,8 +553,8 @@ currently work with.
<entry>Simulate a Multiprocessor</entry>
<entry>Yes</entry>
<entry>Bochs can be configured to simulate up to 8 processors. This
feature is still experimental, but it can boot Linux 2.2 kernels with SMP
support. Please note that this does NOT mean that Bochs can run
feature is still experimental, but it can boot several Linux or Windows guests
with SMP support. Please note that this does NOT mean that Bochs can run
faster on a physical SMP machine.
</entry>
</row>
@ -643,7 +643,7 @@ code that displays the Bochs VGA screen and handles keyboard and mouse events.
</row>
<row>
<entry>Macintosh</entry>
<entry>PowerPC-Macintosh</entry>
<entry>
David Batterham<!-- <email>drbatter@socs.uts.edu.au</email> or <email>drbatter@yahoo.com</email> -->
ported Bochs to the Mac. He compiled with CodeWarrior Pro R1 (CW12)
@ -1164,6 +1164,14 @@ The tag tells which release you want, and it can be one of the following:
</row>
</thead>
<tbody>
<row>
<entry>2.4.1</entry>
<entry>REL_2_4_1_FINAL</entry>
</row>
<row>
<entry>2.4</entry>
<entry>REL_2_4_FINAL</entry>
</row>
<row>
<entry>2.3.7</entry>
<entry>REL_2_3_7_FINAL</entry>
@ -1248,10 +1256,6 @@ The tag tells which release you want, and it can be one of the following:
<entry>1.1 (bugfix1)</entry>
<entry>REL_1_1_BASE</entry>
</row>
<row>
<entry>March 25, 2000</entry>
<entry>REL-bochs-2000-03-25</entry>
</row>
</tbody>
</tgroup>
</table>
@ -6480,10 +6484,7 @@ the "instrument/stubs" directory to it, then customize it. Use:
<title>Instrumentation commands</title>
<para>
<screen>
instrument start calls bx_instr_start()
instrument stop calls bx_instr_stop()
instrument reset calls bx_instr_reset()
instrument print calls bx_instr_print()
instrument <command> calls BX_INSTR_DEBUG_CMD instrumentation callback with <command>
</screen>
</para>
</section>