| # -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. |