You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
978 lines
17 KiB
978 lines
17 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Using Bochs internal debugger</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
REL="HOME"
|
|
TITLE="Bochs User Manual"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Tips and Techniques"
|
|
HREF="howto.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Configuring and using a tuntap network interface"
|
|
HREF="config-tuntap.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Using Bochs and the remote GDB stub"
|
|
HREF="debugging-with-gdb.html"></HEAD
|
|
><BODY
|
|
CLASS="SECTION"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Bochs User Manual</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="config-tuntap.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
>Chapter 8. Tips and Techniques</TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="debugging-with-gdb.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H1
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="INTERNAL-DEBUGGER"
|
|
>8.11. Using Bochs internal debugger</A
|
|
></H1
|
|
><P
|
|
>Note, if you are looking for a graphical front-end for the
|
|
bochs debugger, you may want to check out
|
|
<A
|
|
HREF="http://bfe.sourceforge.net/"
|
|
TARGET="_top"
|
|
>BFE</A
|
|
>. This is a
|
|
package written by a Bochs user which can interface with
|
|
the text based Bochs debugger. No linking is necessary.
|
|
It's not part of Bochs, but you may find it useful.</P
|
|
><P
|
|
>You can now conditionally compile in a GDB like command line debugger, that
|
|
allows you to set breakpoints, step through instructions, and other
|
|
useful functions. If there isn't a command for something you believe
|
|
is generally useful for the debugger, let me know and I'll implement
|
|
it if possible.</P
|
|
><P
|
|
>To use the debugger, you must configure Bochs with the
|
|
<CODE
|
|
CLASS="OPTION"
|
|
>--enable-debugger</CODE
|
|
> and <CODE
|
|
CLASS="OPTION"
|
|
>--enable-disasm</CODE
|
|
> flags.
|
|
For example:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> ./configure --enable-debugger --enable-disasm</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><DIV
|
|
CLASS="NOTE"
|
|
><BLOCKQUOTE
|
|
CLASS="NOTE"
|
|
><P
|
|
><B
|
|
>Note: </B
|
|
>You must use flex version 2.5.4 or greater. I have heard that
|
|
version 2.5.2 will not work.</P
|
|
></BLOCKQUOTE
|
|
></DIV
|
|
><P
|
|
>When you first start up Bochs, you will see the command line prompt
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> bochs:1></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
From here, you may use the following commands:</P
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3008"
|
|
>8.11.1. Execution Control</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> c continue executing
|
|
continue
|
|
|
|
s [count] execute count instructions, default is 1
|
|
step [count]
|
|
stepi [count]
|
|
|
|
Ctrl-C stop execution, and return to command line prompt
|
|
Ctrl-D if at empty line on command line, exit
|
|
|
|
q quit debugger and execution
|
|
quit
|
|
exit</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3012"
|
|
>8.11.2. BreakPoints</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> NOTE: The format of 'seg', 'off', and 'addr' in these descriptions,
|
|
are as follows. I don't have any way to set the current radix.
|
|
|
|
hexidecimal: 0xcdef0123
|
|
decimal: 123456789
|
|
octal: 01234567
|
|
|
|
vbreak seg:off Set a virtual address instruction breakpoint
|
|
vb seg:off
|
|
|
|
lbreak addr Set a linear address instruction breakpoint
|
|
lb addr
|
|
|
|
pbreak [*] addr Set a physical address instruction breakpoint
|
|
pb [*] addr (the '*' is optional for GDB compatibility)
|
|
break [*] addr
|
|
b [*] addr
|
|
|
|
info break Display state of all current breakpoints
|
|
bpe n Enable a breakpoint
|
|
bpd n Disable a breakpoint
|
|
delete n Delete a breakpoint
|
|
del n
|
|
d n </PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3016"
|
|
>8.11.3. Manipulating Memory</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> x /nuf addr Examine memory at linear address addr
|
|
xp /nuf addr Examine memory at physical address addr
|
|
n Count of how many units to display
|
|
u Unit size; one of
|
|
b Individual bytes
|
|
h Halfwords (2 bytes)
|
|
w Words (4 bytes)
|
|
g Giant words (8 bytes)
|
|
NOTE: these are *not* typical Intel nomenclature sizes,
|
|
but they are consistent with GDB convention.
|
|
f Printing format. one of
|
|
x Print in hexadecimal
|
|
d Print in decimal
|
|
u Print in unsigned decimal
|
|
o Print in octal
|
|
t Print in binary
|
|
|
|
n, f, and u are optional parameters. u and f default to the last values
|
|
you used, or to w(words) and x(hex) if none have been supplied.
|
|
n currently defaults to 1. If none of these optional parameters are
|
|
used, no slash should be typed. addr is also optional. If you don't
|
|
specify it, it will be the value the next address (as if you had
|
|
specified n+1 in the last x command).
|
|
|
|
setpmem addr datasize val Set physical memory location of size
|
|
datasize to value val.
|
|
|
|
crc addr1 addr2 Show CRC32 for physical memory range addr1..addr2
|
|
info dirty Show physical pages dirtied (written to) since last display
|
|
Values displayed are the top 20 bits only (page addresses) </PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3020"
|
|
>8.11.4. Info commands</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> info r|reg|regs|registers List of CPU integer registers and their contents
|
|
info cpu List of all CPU registers and their contents
|
|
info fpu List of all FPU registers and their contents
|
|
info sse List of all SSE registers and their contents
|
|
info mmx List of all MMX registers and their contents
|
|
info creg Show CR0-CR4 registers and their contents
|
|
info sreg Show segment registers and their contents
|
|
info eflags Show decoded EFLAGS register
|
|
info break Information about current breakpoint status
|
|
info tab Show paging address translation</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3024"
|
|
>8.11.5. Manipulating CPU Registers</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> set reg = expr Change a CPU register to value of expression.
|
|
Currently only general purpose registers are supported,
|
|
you may not change:
|
|
eflags, eip, cs, ss, ds, es, fs, gs.
|
|
|
|
Examples: set eax = 2+2/2
|
|
set esi = 2*eax+ebx
|
|
|
|
registers List of CPU registers and their contents
|
|
regs
|
|
reg
|
|
r</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3028"
|
|
>8.11.6. Disassembly commands</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> disassemble start end Disassemble instructions in given linear address
|
|
range, inclusive of start, exclusive of end.
|
|
Use "set $disassemble_size =" to tell
|
|
debugger desired segment size. Use a value for
|
|
end of less than start (or zero) if you only
|
|
want the first instruction disassembled.
|
|
|
|
disassemble switch-mode Switch between Intel and AT&T disassebly styles
|
|
for debugger disassembler.
|
|
|
|
disassemble size = n Tell debugger what segment size to use when
|
|
the "disassemble" command is used. Use values
|
|
of 0, 16 or 32 for n. Value of 0 means
|
|
"use segment size specified by current CS
|
|
segment". Default is 0.
|
|
|
|
set $auto_disassemble = n Cause debugger to disassemble current instruction
|
|
every time execution stops if n=1. Default is 0.
|
|
Segment size of current CPU context is used for
|
|
disassembly, so the "disassemble size" variable is
|
|
ignored.
|
|
|
|
set disassemble on The same as 'set $auto_disassemble = 1'
|
|
set disassemble off The same as 'set $auto_disassemble = 0'</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3032"
|
|
>8.11.7. Instruction tracing</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> trace on Disassemble every executed instruction. Note
|
|
that instructions which caused exceptions are
|
|
not really executed, and therefore not traced.
|
|
|
|
trace off Disable instruction tracing.</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3036"
|
|
>8.11.8. Instrumentation</A
|
|
></H2
|
|
><P
|
|
> To use instrumentation features in bochs, you must compile in support for it.
|
|
You should build a custom instrumentation library in a separate directory in
|
|
the "instrument/" directory. To tell configure which instrumentation library
|
|
you want to use, use the "--enable-instrumentation" option.
|
|
|
|
The default library consists of a set of stubs, and the following are
|
|
equivalent:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> ./configure [...] --enable-instrumentation
|
|
./configure [...] --enable-instrumentation="instrument/stubs"</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
You could make a separate directory with your custom library,
|
|
for example "instrument/myinstrument", copy the contents of
|
|
the "instrument/stubs" directory to it, then customize it. Use:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> ./configure [...] --enable-instrumentation="instrument/myinstrument"</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3041"
|
|
>8.11.9. Instrumentation commands</A
|
|
></H2
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="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()</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3045"
|
|
>8.11.10. Other Commands</A
|
|
></H2
|
|
><P
|
|
> <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>ptime</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Print the current time (number of ticks since start of simulation).
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>sb <CODE
|
|
CLASS="VARNAME"
|
|
>delta</CODE
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Insert a time break point "delta" instructions into the future ("delta" is a 64-bit integer followed by "L", for example 1000L).
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>sba <CODE
|
|
CLASS="VARNAME"
|
|
>time</CODE
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Insert a time break point at "time" ("time" is a 64-bit integer followed by "L", for example 1000L).
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>record <CODE
|
|
CLASS="VARNAME"
|
|
>filename</CODE
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Record console input to file <CODE
|
|
CLASS="VARNAME"
|
|
>filename</CODE
|
|
>. The file consists of
|
|
zero or more lines of the form "%s %d %x", where the first word is the
|
|
event type, the second is a time stamp and the third is event specific
|
|
data.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>playback <CODE
|
|
CLASS="VARNAME"
|
|
>filename</CODE
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Playback console input from file <CODE
|
|
CLASS="VARNAME"
|
|
>filename</CODE
|
|
>. Additional input can
|
|
be given directly in the console window. Events in the file will be
|
|
played back at times relative to the time when the playback command
|
|
was executed.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>print-stack [<CODE
|
|
CLASS="VARNAME"
|
|
>num words</CODE
|
|
>]</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Print the <CODE
|
|
CLASS="VARNAME"
|
|
>num words</CODE
|
|
> top 16-bit words on the stack. <CODE
|
|
CLASS="VARNAME"
|
|
>Num
|
|
words</CODE
|
|
> defaults to 16. Only works reliably in protected mode when
|
|
the base address of the stack segment is zero.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>watch stop</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Stop the simulation (and return to prompt) when a watch point is
|
|
encountered.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>watch continue</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Do not stop the simulation when watch points are encountered. They will
|
|
still be logged.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>watch</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Print current watch point status.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>unwatch</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Remove all watch points.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>watch read <CODE
|
|
CLASS="VARNAME"
|
|
>address</CODE
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Insert a read watch point at physical address <CODE
|
|
CLASS="VARNAME"
|
|
>address</CODE
|
|
>.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>watch write address</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Insert a write watch point at physical address <CODE
|
|
CLASS="VARNAME"
|
|
>address</CODE
|
|
>.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>unwatch read <CODE
|
|
CLASS="VARNAME"
|
|
>address</CODE
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Remove read watch point from physical address <CODE
|
|
CLASS="VARNAME"
|
|
>address</CODE
|
|
>.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>unwatch write <CODE
|
|
CLASS="VARNAME"
|
|
>address</CODE
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Remove write watch point from physical address <CODE
|
|
CLASS="VARNAME"
|
|
>address</CODE
|
|
>.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>modebp</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Toggles CPU mode switch breakpoint.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>load-symbols [global] <CODE
|
|
CLASS="VARNAME"
|
|
>filename</CODE
|
|
> [<CODE
|
|
CLASS="VARNAME"
|
|
>offset</CODE
|
|
>]</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Load symbols from file <CODE
|
|
CLASS="VARNAME"
|
|
>filename</CODE
|
|
>. If the global keyword is
|
|
added, then the the symbols will be visible in all contexts for which
|
|
symbols have not been loaded. <CODE
|
|
CLASS="VARNAME"
|
|
>Offset</CODE
|
|
> (default is 0) is added to
|
|
every symbol entry. The symbols are loaded in the current (executing)
|
|
context.</P
|
|
><P
|
|
>The symbol file consists of zero or more lines of the format <TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>"%x %s"</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>.
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>show [<CODE
|
|
CLASS="VARNAME"
|
|
>string</CODE
|
|
>]</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> Toggles show symbolic info (calls to begin with).
|
|
show - shows current show mode
|
|
show mode - show, when processor switch mode
|
|
show int - show, when interrupt is happens
|
|
show call - show, when call is happens
|
|
show ret - show, when iret is happens
|
|
show off - toggles off symbolic info
|
|
show dbg-all - turn on all show flags
|
|
show dbg-none - turn off all show flags</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN3089"
|
|
>8.11.11. Related links</A
|
|
></H2
|
|
><P
|
|
><IMG
|
|
SRC="../images/undercon.png"> add links
|
|
<P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> Cosimulation </P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Instrumentation </P
|
|
></LI
|
|
></UL
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="config-tuntap.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="debugging-with-gdb.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Configuring and using a tuntap network interface</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="howto.html"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Using Bochs and the remote GDB stub</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
>
|