X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fdoc%2Fgdb.texinfo;h=e14a3eae263fb9f4282186bf4820fd53c188b553;hb=f73adfeb8bae36885e6ea248d12223ab0d5eb9cb;hp=d2758d032956752ff8e9c0413b88374ff8da32f3;hpb=2f1acb09b62408bd9a6ee373b66c394df980f609;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index d2758d0329..e14a3eae26 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -537,7 +537,7 @@ $ @b{./m4} @b{define(baz,defn(foo))} @b{baz} -@b{C-d} +@b{Ctrl-d} m4: End of input: 0: fatal error: EOF in string @end smallexample @@ -754,7 +754,7 @@ problem seems to have been just the two typos defining the wrong lengths. We allow @code{m4} exit by giving it an EOF as input: @smallexample -@b{C-d} +@b{Ctrl-d} Program exited normally. @end smallexample @@ -776,7 +776,7 @@ The essentials are: @item type @samp{@value{GDBP}} to start @value{GDBN}. @item -type @kbd{quit} or @kbd{C-d} to exit. +type @kbd{quit} or @kbd{Ctrl-d} to exit. @end itemize @menu @@ -1277,14 +1277,14 @@ CISCO 68k: @file{.cisco-gdbinit} @item quit @r{[}@var{expression}@r{]} @itemx q To exit @value{GDBN}, use the @code{quit} command (abbreviated -@code{q}), or type an end-of-file character (usually @kbd{C-d}). If you +@code{q}), or type an end-of-file character (usually @kbd{Ctrl-d}). If you do not supply @var{expression}, @value{GDBN} will terminate normally; otherwise it will terminate using the result of @var{expression} as the error code. @end table @cindex interrupt -An interrupt (often @kbd{C-c}) does not exit from @value{GDBN}, but rather +An interrupt (often @kbd{Ctrl-c}) does not exit from @value{GDBN}, but rather terminates the action of any @value{GDBN} command that is in progress and returns to @value{GDBN} command level. It is safe to type the interrupt character at any time because @value{GDBN} does not allow it to take effect @@ -1411,9 +1411,9 @@ nothing. This is useful mainly in command files (@pxref{Command Files,,Command files}). @cindex repeating command sequences -@kindex C-o @r{(operate-and-get-next)} -The @kbd{C-o} binding is useful for repeating a complex sequence of -commands. This command accepts the current line, like @kbd{RET}, and +@kindex Ctrl-o @r{(operate-and-get-next)} +The @kbd{Ctrl-o} binding is useful for repeating a complex sequence of +commands. This command accepts the current line, like @key{RET}, and then fetches the next line relative to the current line from the history for editing. @@ -2574,13 +2574,13 @@ as shown in the first field of the @samp{info forks} display. @end table To quit debugging one of the forked processes, you can either detach -from it by using the @w{@code{detach-fork}} command (allowing it to +from it by using the @w{@code{detach fork}} command (allowing it to run independently), or delete (and kill) it using the @w{@code{delete fork}} command. @table @code -@kindex detach-fork @var{fork-id} -@item detach-fork @var{fork-id} +@kindex detach fork @var{fork-id} +@item detach fork @var{fork-id} Detach from the process identified by @value{GDBN} fork number @var{fork-id}, and remove it from the fork list. The process will be allowed to run independently. @@ -2773,15 +2773,19 @@ in shared library routines that are not called directly by the program call). @cindex watchpoints +@cindex data breakpoints @cindex memory tracing @cindex breakpoint on memory address @cindex breakpoint on variable modification A @dfn{watchpoint} is a special breakpoint that stops your program -when the value of an expression changes. You must use a different -command to set watchpoints (@pxref{Set Watchpoints, ,Setting -watchpoints}), but aside from that, you can manage a watchpoint like -any other breakpoint: you enable, disable, and delete both breakpoints -and watchpoints using the same commands. +when the value of an expression changes. The expression may be a value +of a variable, or it could involve values of one or more variables +combined by operators, such as @samp{a + b}. This is sometimes called +@dfn{data breakpoints}. You must use a different command to set +watchpoints (@pxref{Set Watchpoints, ,Setting watchpoints}), but aside +from that, you can manage a watchpoint like any other breakpoint: you +enable, disable, and delete both breakpoints and watchpoints using the +same commands. You can arrange to have values from your program displayed automatically whenever @value{GDBN} stops at a breakpoint. @xref{Auto Display,, @@ -2985,7 +2989,9 @@ The @code{rbreak} command can be used to set breakpoints in @itemx info break @r{[}@var{n}@r{]} @itemx info watchpoints @r{[}@var{n}@r{]} Print a table of all breakpoints, watchpoints, and catchpoints set and -not deleted, with the following columns for each breakpoint: +not deleted. Optional argument @var{n} means print information only +about the specified breakpoint (or watchpoint or catchpoint). For +each breakpoint, following columns are printed: @table @emph @item Breakpoint Numbers @@ -3104,7 +3110,24 @@ You can see these breakpoints with the @value{GDBN} maintenance command @cindex setting watchpoints You can use a watchpoint to stop execution whenever the value of an expression changes, without having to predict a particular place where -this may happen. +this may happen. (This is sometimes called a @dfn{data breakpoint}.) +The expression may be as simple as the value of a single variable, or +as complex as many variables combined by operators. Examples include: + +@itemize @bullet +@item +A reference to the value of a single variable. + +@item +An address cast to an appropriate data type. For example, +@samp{*(int *)0x12345678} will watch a 4-byte region at the specified +address (assuming an @code{int} occupies 4 bytes). + +@item +An arbitrarily complex expression, such as @samp{a*b + c/d}. The +expression can use any operators valid in the program's native +language (@pxref{Languages}). +@end itemize @cindex software watchpoints @cindex hardware watchpoints @@ -3122,8 +3145,14 @@ watchpoints, which do not slow down the running of your program. @table @code @kindex watch @item watch @var{expr} -Set a watchpoint for an expression. @value{GDBN} will break when @var{expr} -is written into by the program and its value changes. +Set a watchpoint for an expression. @value{GDBN} will break when the +expression @var{expr} is written into by the program and its value +changes. The simplest (and the most popular) use of this command is +to watch the value of a single variable: + +@smallexample +(@value{GDBP}) watch foo +@end smallexample @kindex rwatch @item rwatch @var{expr} @@ -3135,7 +3164,7 @@ by the program. Set a watchpoint that will break when @var{expr} is either read from or written into by the program. -@kindex info watchpoints +@kindex info watchpoints @r{[}@var{n}@r{]} @item info watchpoints This command prints a list of watchpoints, breakpoints, and catchpoints; it is the same as @code{info break} (@pxref{Set Breaks}). @@ -3215,6 +3244,11 @@ Hardware watchpoint @var{num}: Could not insert watchpoint @noindent If this happens, delete or disable some of the watchpoints. +Watching complex expressions that reference many variables can also +exhaust the resources available for hardware-assisted watchpoints. +That's because @value{GDBN} needs to watch every variable in the +expression with separately allocated resources. + The SPARClite DSU will generate traps when a program accesses some data or instruction address that is assigned to the debug registers. For the data addresses, DSU facilitates the @code{watch} command. However the @@ -4096,7 +4130,7 @@ An argument is a repeat count, as in @code{next}. A signal is an asynchronous event that can happen in a program. The operating system defines the possible kinds of signals, and gives each kind a name and a number. For example, in Unix @code{SIGINT} is the -signal a program gets when you type an interrupt character (often @kbd{C-c}); +signal a program gets when you type an interrupt character (often @kbd{Ctrl-c}); @code{SIGSEGV} is the signal a program gets from referencing a place in memory far away from all the areas in use; @code{SIGALRM} occurs when the alarm clock timer goes off (which happens only if your program has @@ -4130,15 +4164,19 @@ Print a table of all the kinds of signals and how @value{GDBN} has been told to handle each one. You can use this to see the signal numbers of all the defined types of signals. +@item info signals @var{sig} +Similar, but print information only about the specified signal number. + @code{info handle} is an alias for @code{info signals}. @kindex handle -@item handle @var{signal} @var{keywords}@dots{} +@item handle @var{signal} @r{[}@var{keywords}@dots{}@r{]} Change the way @value{GDBN} handles signal @var{signal}. @var{signal} can be the number of a signal or its name (with or without the @samp{SIG} at the beginning); a list of signal numbers of the form @samp{@var{low}-@var{high}}; or the word @samp{all}, meaning all the -known signals. The @var{keywords} say what change to make. +known signals. Optional arguments @var{keywords}, described below, +say what change to make. @end table @c @group @@ -4455,7 +4493,7 @@ Print a backtrace of the entire stack: one line per frame for all frames in the stack. You can stop the backtrace at any time by typing the system interrupt -character, normally @kbd{C-c}. +character, normally @kbd{Ctrl-c}. @item backtrace @var{n} @itemx bt @var{n} @@ -4466,8 +4504,11 @@ Similar, but print only the innermost @var{n} frames. Similar, but print only the outermost @var{n} frames. @item backtrace full -Print the values of the local variables also. @itemx bt full +@itemx bt full @var{n} +@itemx bt full -@var{n} +Print the values of the local variables also. @var{n} specifies the +number of frames to print, as described above. @end table @kindex where @@ -6720,9 +6761,12 @@ an unrecognized tag. @cindex memory region attributes @dfn{Memory region attributes} allow you to describe special handling -required by regions of your target's memory. @value{GDBN} uses attributes -to determine whether to allow certain types of memory accesses; whether to -use specific width accesses; and whether to cache target memory. +required by regions of your target's memory. @value{GDBN} uses +attributes to determine whether to allow certain types of memory +accesses; whether to use specific width accesses; and whether to cache +target memory. By default the description of memory regions is +fetched from the target (if the current target supports this), but the +user can override the fetched regions. Defined memory regions can be individually enabled and disabled. When a memory region is disabled, @value{GDBN} uses the default attributes when @@ -6742,6 +6786,10 @@ monitored by @value{GDBN}. Note that @var{upper} == 0 is a special case: it is treated as the the target's maximum memory address. (0xffff on 16 bit targets, 0xffffffff on 32 bit targets, etc.) +@item mem auto +Discard any user changes to the memory regions and use target-supplied +regions, if available, or no regions if the target does not support. + @kindex delete mem @item delete mem @var{nums}@dots{} Remove memory regions @var{nums}@dots{} from the list of regions @@ -12284,6 +12332,9 @@ link the program; for other formats, like a.out, the object file format specifies a fixed address. @c FIXME! This would be a good place for an xref to the GNU linker doc. +Depending on the remote side capabilities, @value{GDBN} may be able to +load programs into flash memory. + @code{load} does not repeat if you press @key{RET} again after using it. @end table @@ -12460,7 +12511,7 @@ remote program. @cindex interrupting remote programs @cindex remote programs, interrupting Whenever @value{GDBN} is waiting for the remote program, if you type the -interrupt character (often @key{C-C}), @value{GDBN} attempts to stop the +interrupt character (often @kbd{Ctrl-c}), @value{GDBN} attempts to stop the program. This may or may not succeed, depending in part on the hardware and the serial drivers the remote system uses. If you type the interrupt character once again, @value{GDBN} displays this prompt: @@ -12650,7 +12701,7 @@ Show the current speed of the remote connection. @cindex BREAK signal instead of Ctrl-C @anchor{set remotebreak} If set to on, @value{GDBN} sends a @code{BREAK} signal to the remote -when you press the @key{Ctrl-C} key to interrupt the program running +when you type @kbd{Ctrl-c} to interrupt the program running on the remote. If set to off, @value{GDBN} sends the @samp{Ctrl-C} character instead. The default is off, since most remote systems expect to see @samp{Ctrl-C} as the interrupt signal. @@ -13604,7 +13655,7 @@ when the debuggee is started. This boolean value controls whether the debuggee should start a new group or stay in the same group as the debugger. This affects the way the Windows OS handles -Ctrl-C. +@samp{Ctrl-C}. @kindex show new-group @item show new-group @@ -14451,7 +14502,7 @@ you can't send an interrupt---but you can press the @sc{reset} switch! Use the @sc{reset} button on the development board @itemize @bullet @item -to interrupt your program (don't use @kbd{ctl-C} on the DOS host---it has +to interrupt your program (don't use @kbd{Ctrl-c} on the DOS host---it has no way to pass an interrupt signal to the development board); and @item @@ -15244,8 +15295,8 @@ manual for available commands. Connect the controlling terminal to the STDBUG command monitor. When you are done interacting with STDBUG, typing either of two character sequences gets you back to the @value{GDBN} command prompt: -@kbd{@key{RET}~.} (Return, followed by tilde and period) or -@kbd{@key{RET}~@key{C-d}} (Return, followed by tilde and control-D). +@kbd{@key{RET} ~ .} (Return, followed by tilde and period) or +@kbd{@key{RET} ~ Ctrl-d} (Return, followed by tilde and control-D). @end table @node Z8000 @@ -16924,7 +16975,7 @@ In the TUI mode, the arrow keys are used by the active window for scrolling. This means they are available for readline when the active window is the command window. When the command window does not have the focus, it is necessary to use other readline -key bindings such as @key{C-p}, @key{C-n}, @key{C-b} and @key{C-f}. +key bindings such as @kbd{C-p}, @kbd{C-n}, @kbd{C-b} and @kbd{C-f}. @node TUI Single Key Mode @section TUI Single Key Mode @@ -16982,7 +17033,7 @@ The key that was pressed is inserted in the editing buffer so that it is possible to type most @value{GDBN} commands without interaction with the TUI @emph{SingleKey} mode. Once the command is entered the TUI @emph{SingleKey} mode is restored. The only way to permanently leave -this mode is by hitting @key{q} or @samp{@key{C-x} @key{s}}. +this mode is by typing @kbd{q} or @kbd{C-x s}. @node TUI Commands @@ -17027,7 +17078,7 @@ can be affected to another window. @item refresh @kindex refresh -Refresh the screen. This is similar to using @key{C-L} key. +Refresh the screen. This is similar to typing @kbd{C-L}. @item tui reg float @kindex tui reg @@ -17231,7 +17282,7 @@ Go down the number of frames indicated by the numeric argument, like the @value{GDBN} @code{down} command. @end table -In any source file, the Emacs command @kbd{C-x SPC} (@code{gud-break}) +In any source file, the Emacs command @kbd{C-x @key{SPC}} (@code{gud-break}) tells @value{GDBN} to set a breakpoint on the source line point is on. If you type @kbd{M-x speedbar}, then Emacs displays a separate frame which @@ -19337,7 +19388,7 @@ whole stack. If given two integer arguments, it shows the frames whose levels are between the two arguments (inclusive). If the two arguments are equal, it shows the single frame at the corresponding level. It is an error if @var{low-frame} is larger than the actual number of -frames. On the other hand, @var{high-frame} may be larger then the +frames. On the other hand, @var{high-frame} may be larger than the actual number of frames, in which case only existing frames will be returned. @subsubheading @value{GDBN} Command @@ -21478,34 +21529,34 @@ features the following annotations: The input types are @table @code -@findex pre-prompt -@findex prompt -@findex post-prompt +@findex pre-prompt annotation +@findex prompt annotation +@findex post-prompt annotation @item prompt When @value{GDBN} is prompting for a command (the main @value{GDBN} prompt). -@findex pre-commands -@findex commands -@findex post-commands +@findex pre-commands annotation +@findex commands annotation +@findex post-commands annotation @item commands When @value{GDBN} prompts for a set of commands, like in the @code{commands} command. The annotations are repeated for each command which is input. -@findex pre-overload-choice -@findex overload-choice -@findex post-overload-choice +@findex pre-overload-choice annotation +@findex overload-choice annotation +@findex post-overload-choice annotation @item overload-choice When @value{GDBN} wants the user to select between various overloaded functions. -@findex pre-query -@findex query -@findex post-query +@findex pre-query annotation +@findex query annotation +@findex post-query annotation @item query When @value{GDBN} wants the user to confirm a potentially dangerous operation. -@findex pre-prompt-for-continue -@findex prompt-for-continue -@findex post-prompt-for-continue +@findex pre-prompt-for-continue annotation +@findex prompt-for-continue annotation +@findex post-prompt-for-continue annotation @item prompt-for-continue When @value{GDBN} is asking the user to press return to continue. Note: Don't expect this to work well; instead use @code{set height 0} to disable @@ -21517,14 +21568,14 @@ presence of annotations. @section Errors @cindex annotations for errors, warnings and interrupts -@findex quit +@findex quit annotation @smallexample ^Z^Zquit @end smallexample This annotation occurs right before @value{GDBN} responds to an interrupt. -@findex error +@findex error annotation @smallexample ^Z^Zerror @end smallexample @@ -21539,7 +21590,7 @@ cannot expect not to receive it either, however; an error annotation does not necessarily mean that @value{GDBN} is immediately returning all the way to the top level. -@findex error-begin +@findex error-begin annotation A quit or error annotation may be preceded by @smallexample @@ -21561,13 +21612,13 @@ The following annotations say that certain pieces of state may have changed. @table @code -@findex frames-invalid +@findex frames-invalid annotation @item ^Z^Zframes-invalid The frames (for example, output from the @code{backtrace} command) may have changed. -@findex breakpoints-invalid +@findex breakpoints-invalid annotation @item ^Z^Zbreakpoints-invalid The breakpoints may have changed. For example, the user just added or @@ -21578,8 +21629,8 @@ deleted a breakpoint. @section Running the Program @cindex annotations for running programs -@findex starting -@findex stopping +@findex starting annotation +@findex stopping annotation When the program starts executing due to a @value{GDBN} command such as @code{step} or @code{continue}, @@ -21597,16 +21648,16 @@ is output. Before the @code{stopped} annotation, a variety of annotations describe how the program stopped. @table @code -@findex exited +@findex exited annotation @item ^Z^Zexited @var{exit-status} The program exited, and @var{exit-status} is the exit status (zero for successful exit, otherwise nonzero). -@findex signalled -@findex signal-name -@findex signal-name-end -@findex signal-string -@findex signal-string-end +@findex signalled annotation +@findex signal-name annotation +@findex signal-name-end annotation +@findex signal-string annotation +@findex signal-string-end annotation @item ^Z^Zsignalled The program exited with a signal. After the @code{^Z^Zsignalled}, the annotation continues: @@ -21630,17 +21681,17 @@ as @code{Illegal Instruction} or @code{Segmentation fault}. @var{intro-text}, @var{middle-text}, and @var{end-text} are for the user's benefit and have no particular format. -@findex signal +@findex signal annotation @item ^Z^Zsignal The syntax of this annotation is just like @code{signalled}, but @value{GDBN} is just saying that the program received the signal, not that it was terminated with it. -@findex breakpoint +@findex breakpoint annotation @item ^Z^Zbreakpoint @var{number} The program hit breakpoint number @var{number}. -@findex watchpoint +@findex watchpoint annotation @item ^Z^Zwatchpoint @var{number} The program hit watchpoint number @var{number}. @end table @@ -21649,7 +21700,7 @@ The program hit watchpoint number @var{number}. @section Displaying Source @cindex annotations for source display -@findex source +@findex source annotation The following annotation is used instead of displaying source code: @smallexample @@ -22647,6 +22698,7 @@ Show the current setting of the target wait timeout. * Interrupts:: * Examples:: * File-I/O remote protocol extension:: +* Memory map format:: @end menu @node Overview @@ -23145,6 +23197,58 @@ command in the @samp{vCont} packet. The @samp{vCont} packet is not supported. @end table +@item vFlashErase:@var{addr},@var{length} +@cindex @samp{vFlashErase} packet +Direct the stub to erase @var{length} bytes of flash starting at +@var{addr}. The region may enclose any number of flash blocks, but +its start and end must fall on block boundaries, as indicated by the +flash block size appearing in the memory map (@pxref{Memory map +format}). @value{GDBN} groups flash memory programming operations +together, and sends a @samp{vFlashDone} request after each group; the +stub is allowed to delay erase operation until the @samp{vFlashDone} +packet is received. + +Reply: +@table @samp +@item OK +for success +@item E @var{NN} +for an error +@end table + +@item vFlashWrite:@var{addr}:@var{XX@dots{}} +@cindex @samp{vFlashWrite} packet +Direct the stub to write data to flash address @var{addr}. The data +is passed in binary form using the same encoding as for the @samp{X} +packet (@pxref{Binary Data}). The memory ranges specified by +@samp{vFlashWrite} packets preceding a @samp{vFlashDone} packet must +not overlap, and must appear in order of increasing addresses +(although @samp{vFlashErase} packets for higher addresses may already +have been received; the ordering is guaranteed only between +@samp{vFlashWrite} packets). If a packet writes to an address that was +neither erased by a preceding @samp{vFlashErase} packet nor by some other +target-specific method, the results are unpredictable. + + +Reply: +@table @samp +@item OK +for success +@item E.memtype +for vFlashWrite addressing non-flash memory +@item E @var{NN} +for an error +@end table + +@item vFlashDone +@cindex @samp{vFlashDone} packet +Indicate to the stub that flash programming operation is finished. +The stub is permitted to delay or batch the effects of a group of +@samp{vFlashErase} and @samp{vFlashWrite} packets until a +@samp{vFlashDone} packet is received. The contents of the affected +regions of flash memory are unpredictable until the @samp{vFlashDone} +request is completed. + @item X @var{addr},@var{length}:@var{XX@dots{}} @anchor{X packet} @cindex @samp{X} packet @@ -23687,6 +23791,11 @@ These are the currently defined stub features and their properties: @tab @samp{-} @tab Yes +@item @samp{qXfer:memory-map:read} +@tab No +@tab @samp{-} +@tab Yes + @end multitable These are the currently defined stub features, in more detail: @@ -23784,6 +23893,7 @@ packets.) @item qXfer:@var{object}:read:@var{annex}:@var{offset},@var{length} @cindex read special object, remote request @cindex @samp{qXfer} packet +@anchor{qXfer read} Read uninterpreted bytes from the target's special data area identified by the keyword @var{object}. Request @var{length} bytes starting at @var{offset} bytes into the data. The content and @@ -23805,6 +23915,17 @@ This packet is not probed by default; the remote stub must request it, by suppling an appropriate @samp{qSupported} response (@pxref{qSupported}). @end table +@table @samp +@item qXfer:memory-map:read::@var{offset},@var{length} +@anchor{qXfer memory map read} +Access the target's @dfn{memory-map}. @xref{Memory map format}. The +annex part of the generic @samp{qXfer} packet must be empty +(@pxref{qXfer read}). + +This packet is not probed by default; the remote stub must request it, +by supplying an appropriate @samp{qSupported} response (@pxref{qSupported}). +@end table + Reply: @table @samp @item m @var{data} @@ -24170,7 +24291,7 @@ or @samp{s} packets. While @value{GDBN} handles the request for a system call, the target is stopped to allow deterministic access to the target's memory. Therefore File-I/O is not interruptible by target signals. On the other hand, it is possible to interrupt File-I/O by a user interrupt -(Ctrl-C) within @value{GDBN}. +(@samp{Ctrl-C}) within @value{GDBN}. The target's request to perform a host system call does not finish the latest @samp{C}, @samp{c}, @samp{S} or @samp{s} action. That means, @@ -24326,16 +24447,16 @@ assuming 4 is the protocol specific representation of @code{EINTR}. @node The Ctrl-C message -@subsection The Ctrl-C message +@subsection The @samp{Ctrl-C} message @cindex ctrl-c message, in file-i/o protocol -If the Ctrl-C flag is set in the @value{GDBN} -reply packet (@pxref{The F reply packet}), +If the @samp{Ctrl-C} flag is set in the @value{GDBN} +reply packet (@pxref{The F reply packet}), the target should behave as if it had gotten a break message. The meaning for the target is ``system call interrupted by @code{SIGINT}''. Consequentially, the target should actually stop (as with a break message) and return to @value{GDBN} with a @code{T02} -packet. +packet. It's important for the target to know in which state the system call was interrupted. There are two possible cases: @@ -24378,17 +24499,17 @@ conditions is met: @itemize @bullet @item -The user presses @kbd{Ctrl-C}. The behaviour is as explained above, and the +The user types @kbd{Ctrl-c}. The behaviour is as explained above, and the @code{read} system call is treated as finished. @item -The user presses @kbd{Enter}. This is treated as end of input with a trailing +The user presses @key{RET}. This is treated as end of input with a trailing newline. @item -The user presses @kbd{Ctrl-D}. This is treated as end of input. No trailing -character (neither newline nor Ctrl-D) is appended to the input. +The user types @kbd{Ctrl-d}. This is treated as end of input. No trailing +character (neither newline nor @samp{Ctrl-D}) is appended to the input. @end itemize @@ -25267,7 +25388,7 @@ file descriptor (@code{EBADF}): -> @code{F-1,9} @end smallexample -Example sequence of a read call, user presses Ctrl-C before syscall on +Example sequence of a read call, user presses @kbd{Ctrl-c} before syscall on host is called: @smallexample @@ -25276,7 +25397,7 @@ host is called: <- @code{T02} @end smallexample -Example sequence of a read call, user presses Ctrl-C after syscall on +Example sequence of a read call, user presses @kbd{Ctrl-c} after syscall on host is called: @smallexample @@ -25285,6 +25406,88 @@ host is called: <- @code{T02} @end smallexample +@node Memory map format +@section Memory map format +@cindex memory map format + +To be able to write into flash memory, @value{GDBN} needs to obtain a +memory map from the target. This section describes the format of the +memory map. + +The memory map is obtained using the @samp{qXfer:memory-map:read} +(@pxref{qXfer memory map read}) packet and is an XML document that +lists memory regions. The top-level structure of the document is shown below: + +@smallexample + + + + region... + +@end smallexample + +Each region can be either: + +@itemize + +@item +A region of RAM starting at @var{addr} and extending for @var{length} +bytes from there: + +@smallexample + +@end smallexample + + +@item +A region of read-only memory: + +@smallexample + +@end smallexample + + +@item +A region of flash memory, with erasure blocks @var{blocksize} +bytes in length: + +@smallexample + + @var{blocksize} + +@end smallexample + +@end itemize + +Regions must not overlap. @value{GDBN} assumes that areas of memory not covered +by the memory map are RAM, and uses the ordinary @samp{M} and @samp{X} +packets to write to addresses in such ranges. + +The formal DTD for memory map format is given below: + +@smallexample + + + + + + + + + + + + + + +@end smallexample + @include agentexpr.texi @include gpl.texi