gdb: GDB/MI Target Manipulation
27.20 GDB/MI Target Manipulation Commands
=========================================
The '-target-attach' Command
----------------------------
Synopsis
........
-target-attach PID | GID | FILE
Attach to a process PID or a file FILE outside of GDB, or a thread
group GID. If attaching to a thread group, the id previously returned
by '-list-thread-groups --available' must be used.
GDB Command
...........
The corresponding GDB command is 'attach'.
Example
.......
(gdb)
-target-attach 34
=thread-created,id="1"
*stopped,thread-id="1",frame={addr="0xb7f7e410",func="bar",args=[]}
^done
(gdb)
The '-target-detach' Command
----------------------------
Synopsis
........
-target-detach [ PID | GID ]
Detach from the remote target which normally resumes its execution.
If either PID or GID is specified, detaches from either the specified
process, or specified thread group. There's no output.
GDB Command
...........
The corresponding GDB command is 'detach'.
Example
.......
(gdb)
-target-detach
^done
(gdb)
The '-target-disconnect' Command
--------------------------------
Synopsis
........
-target-disconnect
Disconnect from the remote target. There's no output and the target
is generally not resumed.
GDB Command
...........
The corresponding GDB command is 'disconnect'.
Example
.......
(gdb)
-target-disconnect
^done
(gdb)
The '-target-download' Command
------------------------------
Synopsis
........
-target-download
Loads the executable onto the remote target. It prints out an update
message every half second, which includes the fields:
'section'
The name of the section.
'section-sent'
The size of what has been sent so far for that section.
'section-size'
The size of the section.
'total-sent'
The total size of what was sent so far (the current and the
previous sections).
'total-size'
The size of the overall executable to download.
Each message is sent as status record (GDB/MI Output Syntax
GDB/MI Output Syntax.).
In addition, it prints the name and size of the sections, as they are
downloaded. These messages include the following fields:
'section'
The name of the section.
'section-size'
The size of the section.
'total-size'
The size of the overall executable to download.
At the end, a summary is printed.
GDB Command
...........
The corresponding GDB command is 'load'.
Example
.......
Note: each status message appears on a single line. Here the messages
have been broken down so that they can fit onto a page.
(gdb)
-target-download
+download,{section=".text",section-size="6668",total-size="9880"}
+download,{section=".text",section-sent="512",section-size="6668",
total-sent="512",total-size="9880"}
+download,{section=".text",section-sent="1024",section-size="6668",
total-sent="1024",total-size="9880"}
+download,{section=".text",section-sent="1536",section-size="6668",
total-sent="1536",total-size="9880"}
+download,{section=".text",section-sent="2048",section-size="6668",
total-sent="2048",total-size="9880"}
+download,{section=".text",section-sent="2560",section-size="6668",
total-sent="2560",total-size="9880"}
+download,{section=".text",section-sent="3072",section-size="6668",
total-sent="3072",total-size="9880"}
+download,{section=".text",section-sent="3584",section-size="6668",
total-sent="3584",total-size="9880"}
+download,{section=".text",section-sent="4096",section-size="6668",
total-sent="4096",total-size="9880"}
+download,{section=".text",section-sent="4608",section-size="6668",
total-sent="4608",total-size="9880"}
+download,{section=".text",section-sent="5120",section-size="6668",
total-sent="5120",total-size="9880"}
+download,{section=".text",section-sent="5632",section-size="6668",
total-sent="5632",total-size="9880"}
+download,{section=".text",section-sent="6144",section-size="6668",
total-sent="6144",total-size="9880"}
+download,{section=".text",section-sent="6656",section-size="6668",
total-sent="6656",total-size="9880"}
+download,{section=".init",section-size="28",total-size="9880"}
+download,{section=".fini",section-size="28",total-size="9880"}
+download,{section=".data",section-size="3156",total-size="9880"}
+download,{section=".data",section-sent="512",section-size="3156",
total-sent="7236",total-size="9880"}
+download,{section=".data",section-sent="1024",section-size="3156",
total-sent="7748",total-size="9880"}
+download,{section=".data",section-sent="1536",section-size="3156",
total-sent="8260",total-size="9880"}
+download,{section=".data",section-sent="2048",section-size="3156",
total-sent="8772",total-size="9880"}
+download,{section=".data",section-sent="2560",section-size="3156",
total-sent="9284",total-size="9880"}
+download,{section=".data",section-sent="3072",section-size="3156",
total-sent="9796",total-size="9880"}
^done,address="0x10004",load-size="9880",transfer-rate="6586",
write-rate="429"
(gdb)
GDB Command
...........
No equivalent.
Example
.......
N.A.
The '-target-flash-erase' Command
---------------------------------
Synopsis
........
-target-flash-erase
Erases all known flash memory regions on the target.
The corresponding GDB command is 'flash-erase'.
The output is a list of flash regions that have been erased, with
starting addresses and memory region sizes.
(gdb)
-target-flash-erase
^done,erased-regions={address="0x0",size="0x40000"}
(gdb)
The '-target-select' Command
----------------------------
Synopsis
........
-target-select TYPE PARAMETERS ...
Connect GDB to the remote target. This command takes two args:
'TYPE'
The type of target, for instance 'remote', etc.
'PARAMETERS'
Device names, host names and the like. Commands for Managing
Targets Target Commands, for more details.
The output is a connection notification, followed by the address at
which the target program is, in the following form:
^connected,addr="ADDRESS",func="FUNCTION NAME",
args=[ARG LIST]
GDB Command
...........
The corresponding GDB command is 'target'.
Example
.......
(gdb)
-target-select remote /dev/ttya
^connected,addr="0xfe00a300",func="??",args=[]
(gdb)