llvm-project/lldb/tools/lldb-mi/MIExtensions.txt

105 lines
4.4 KiB
Plaintext

# -file-exec-and-symbols now takes two new (optional) options:
Synopsis
-file-exec-and-symbols <file> [-p <platform>] [-r <remote-file>]
Specify the executable file to be debugged. This file is the one from which the symbol table is also read.
When debugging remote targets specify a remote-file for execution and a file from which symbols are read.
The optional platform is the name of the platform, e.g., "remote-ios" or "ios-simulator". The remote-file
is the on-device path to the exe.
# -data-info-line
Synopsis
-data-info-line *<address>
-data-info-line <file>:<line>
Provides information about a source line. The input can be <address> like 0x12345678 or <file>:<line>
where file is a name of source file and line is the line number. As a result the command returns the following
fields:
start - address of the first instruction which refers to that source line
end - address of the last instruction which refers to that source line
file - the file name
line - the line number
The last two fields are useful in case you have specified a source line using its address.
Example:
-data-info-line *0x100000f80
^done,start="0x0000000100000f80",end="0x0000000100000f94",file="/Users/IliaK/p/hello.cpp",line="15"
-data-info-line hello.cpp:15
^done,start="0x0000000100000f80",end="0x0000000100000f94",file="/Users/IliaK/p/hello.cpp",line="15"
# -data-read-memory-bytes
Synopsis
-data-read-memory-bytes [--thread <thread-id>] [--frame <frame-index>] [-o <byte-offset>] <address> <count>
Where:
`address`
An expression specifying the start of the memory range to read.
`count`
Number of bytes to read.
`byte-offset`
Relative offset in bytes from `address` where reading should start.
`thread-id`
Integer identifier of the thread within which the expression should be evaluated,
if this option is omitted the currently selected thread will be used.
This option is not in the MI specification but is implemented by GDB.
`frame-index`
Index of the frame within which the expression should be evaluated,
if this option is omitted the currently selected frame will be used.
This option is not in the MI specification but is implemented by GDB.
Reads a block of memory from the specified range.
Note that currently this command works in an all-or-nothing fashion where it either reads the entire
block of memory successfully and returns it as a single block, or it returns an error. This doesn't
quite match up with the MI specification that says that subsets of the specified range may be
returned as individual blocks if only some of the memory within the specified range is accessible.
The result record for this command may contain one or more tuples representing the blocks of memory
that were read, where each tuple has the following fields:
`begin`
The start of the address range for this block (in hex notation).
`end`
The end of the address range for this block (in hex notation).
`offset`
Offset of this block from `address` (that was passed in as an argument).
`contents`
The actual data in this block (in hex notation).
Example:
(gdb)
-data-read-memory-bytes &array 4
^done,memory=[{begin="0x00007fffffffeccc",offset="0x0000000000000000",end="0x00007fffffffecd0",contents="01020304"}]
(gdb)
# =library-loaded notification
The =library-loaded notification has 4 extra fields:
symbols-loaded - indicates that there are symbols for the loaded library
symbols-path - if symbols are exist then it contains a path for symbols of the loaded library
loaded_addr - contains an address of the loaded library or "-" if address isn't resolved yet
size - contains the size in bytes of the section loaded at 'loaded_addr'
For example:
=library-loaded,id="/Users/IliaK/p/hello",target-name="/Users/IliaK/p/hello",host-name="/Users/IliaK/p/hello",symbols-loaded="1",symbols-path="/Users/IliaK/p/hello.dSYM/Contents/Resources/DWARF/hello",loaded_addr="-",size="4096"
=library-loaded,id="/usr/lib/dyld",target-name="/usr/lib/dyld",host-name="/usr/lib/dyld",symbols-loaded="0",loaded_addr="0x00007fff5fc00000",size="4096"
# -target-attach
Synopsis
Additional syntax provided by lldb-mi:
-target-attach -n <executable-name> [--waitfor]
Attach to an executable. Using -n allows specifying an executable name to attach to.
Using this with --watifor can do a deffered attach. The flags -n and --waitfor match the syntax of lldb proper's 'process attach' command.