Lines Matching +refs:is +refs:effective +refs:target

6 discover information about a remote target without having to know anything up
26 // connection is reliable. This improves packet throughput and increases
50 // Low. Only needed if the remote target wants to launch a target after
63 Where A is followed by the length in bytes of the hex encoded argument,
81 // NB: key/value pairs are sent as-is so gdb-remote protocol meta characters
84 // should be used instead if it is available. If you don't want to
86 // the QEnvironmentHexEncoded packet over QEnvironment, if it is
90 // Low. Only needed if the remote target wants to launch a target after
110 // The only difference between this packet and QEnvironment is that the
111 // environment key-value pair is ascii hex encoded for transmission.
115 // Low. Only needed if the remote target wants to launch a target after
135 // following error replies if this feature is enabled in the server ->
140 // XX is hex encoded byte number.
147 // Low. Only needed if the remote target wants to provide strings that
164 // Low. Only needed if the remote target wants to launch a target after
185 // Low. Only needed if the remote target wants to launch a target after
203 // Low. Only needed if the remote target wants to launch a target after
205 // an inferior process and if the target supports disabling ASLR
209 Or control if ASLR is enabled/disabled:
228 // Performance. This is a performance benefit to lldb if the thread id's
245 // The return packet is a JSON object with the following schema
252 // If no tracing technology is supported for the inferior, or no process is
256 // This packet is used by Trace plug-ins (see lldb_private::Trace.h) to
267 // This packet is deprecated.
273 // the recognized Keys is given below in the table.
281 // Following is the list of parameters -
306 // Each tracing instance is identified by a trace id which is returned
308 // error code along with a hex encoded ASCII message is returned
318 // This packet is deprecated.
327 // Following is the list of parameters -
344 // An OK response is sent in case of success else an error code along
345 // with a hex encoded ASCII message is returned.
354 // This packet is deprecated.
363 // Following is the list of parameters -
379 // The trace data is sent as raw binary data if the read was successful
380 // else an error code along with a hex encoded ASCII message is sent.
389 // This packet is deprecated.
398 // This packet is deprecated.
404 // Following is the list of parameters -
421 // In the response packet the trace configuration is sent as text,
424 // convention is used.
426 // error code along with a hex encoded ASCII message is returned.
439 // High. Any target that can self describe its registers, should do so.
440 // This means if new registers are ever added to a remote target, they
442 // depending on the actual CPU type that is used.
445 // "qXfer:features:read:target.xml" FSF gdb standard register packet
447 // If qXfer:features:read:target.xml is supported, qRegisterInfo does
452 support for the "qRegisterInfoN" packet where "N" is a zero based
454 for each register that is supported. The response is done in typical
456 An example for the x86_64 registers is included below:
579 we get a response back that is a series of "key=value;" strings.
593 that align values like this. The correct offset: value for fp1 is 12 -
610 this register. This is the byte offset once the data has been
640 EH frame and other compiler information that is encoded in the
643 can be decimal, or hex if it is prefixed with "0x".
648 dwarf The DWARF register number for this register that is used for this
651 can be decimal, or hex if it is prefixed with "0x".
656 generic If the register is a generic register that most CPUs have, classify
676 The value for this key is a comma separated list of raw hex (optional
679 This specifies that this register is contained in other concrete
680 register values. For example "eax" is in the lower 32 bits of the
681 "rax" register value for x86_64, so "eax" could specify that it is
683 register number is 0x00)
687 If a register is comprised of one or more registers, like "d0" is ARM
688 which is a 64 bit register, it might be made up of "s0" and "s1". If
689 the register number for "s0" is 0x20, and the register number of "s1"
690 is "0x21", the "container-regs" key/value pair would be:
694 This is handy for defining what GDB used to call "pseudo" registers.
700 The value for this key is a comma separated list of raw hex (optional
704 register is modified. For example if modifying "eax" would cause "rax",
705 "eax", "ax", "ah", and "al" to be modified where rax is 0x0, eax is 0x15,
706 ax is 0x25, ah is 0x35, and al is 0x39, the "invalidate-regs" key/value
711 If there is a single register that gets invalidated, then omit the comma
716 This is handy when modifying a specific register can cause other
717 register values to change. For example, when debugging an ARM target,
740 Below is an example communication from a client sending an "ls -la" command:
800 // High. This packet is usually very easy to implement and can help
801 // LLDB select the correct plug-ins for the job based on the target
802 // triple information that is supplied.
806 that is being debugged:
813 cputype: is a number that is the mach-o CPU type that is being debugged (base 10)
814 cpusubtype: is a number that is the mach-o CPU subtype type that is being debugged (base 10)
815 triple: a string for the target triple (x86_64-apple-macosx) that can be used to specify arch + ven…
816 vendor: a string for the vendor (apple), not needed if "triple" is specified
817 …r the OS being debugged (macosx, linux, freebsd, ios, watchos), not needed if "triple" is specified
818 endian: is one of "little", "big", or "pdp"
819 ptrsize: an unsigned number that represents how big pointers are in bytes on the debug target
820 hostname: the hostname of the host that is running the GDB server if available
824 watchpoint_exceptions_received: one of "before" or "after" to specify if a watchpoint is triggered …
833 then the value is 39. This is needed on e.g. Aarch64
846 // High. This packet is usually very easy to implement and can help
851 The goal of this packet is to provide enough information about an
858 is appropriate for your server implementation.
870 name : the name of your remote server - "debugserver" is the lldb standard
894 // process is being debugged.
906 read packet: $pid:42a8;parent-pid:42bf;real-uid:ecf;real-gid:b;effective-uid:ecf;effective-gid:b;cp…
911 read packet: $pid:d22c;parent-pid:d34d;real-uid:ecf;real-gid:b;effective-uid:ecf;effective-gid:b;cp…
919 effective-uid: the effective user id of the process
920 effective-gid: the effective group id of the process
923 ostype: is a string the represents the OS being debugged (darwin, linux, freebsd)
924 vendor: is a string that represents the vendor (apple)
925 endian: is one of "little", "big", or "pdp"
926 ptrsize: is a number that represents how big pointers are in bytes
937 // High if you have a dynamic loader plug-in in LLDB for your target
941 // some platforms know, or can find out where this information is.
943 // Low if you have a debug target where all object and symbol files
947 LLDB and GDB both support the "qShlibInfoAddr" packet which is a hint to each
949 binaries that run in user land this is the address of the "all_image_infos"
951 call. The result is returned as big endian hex bytes that are the address
963 // Get information about why a thread, whose ID is "<tid>", is stopped.
968 // is in the process of suspending the other threads, other threads
975 LLDB tries to use the "qThreadStopInfo" packet which is formatted as
976 "qThreadStopInfo%x" where %x is the hex thread ID. This requests information
977 about why a thread is stopped. The response is the same as the stop reply
979 remote packets love to think that there is only _one_ reason that _one_ thread
1001 thread, then read the registers. This is kind of cumbersome, so we added the
1009 If "OK" is returned, then the 'g', 'G', 'p' and 'P' packets can accept a
1039 // Allocate memory on the remote target with the specified size and
1044 // code also needs data which is also allocated and tracked.
1051 code. The packet is formatted as:
1066 is just the address of the newly allocated memory as raw big endian hex bytes.
1077 // code also needs data which is also allocated and tracked.
1082 The deallocate memory packet is "_m<addr>" where you pass in the address you
1094 // Medium. This is nice to have, but it isn't necessary. It helps LLDB
1103 We added a way to get information for a memory region. The packet is:
1107 Where <addr> is a big endian hex address. The response is returned in a series
1111 start:<start-addr>; // <start-addr> is a big endian hex address that is
1114 size:<size>; // <size> is a big endian hex byte size of the address
1117 permissions:<permissions>; // <permissions> is a string that contains one
1120 name:<name>; // <name> is a hex encoded string that contains the name of
1124 // associated to the region if that is available.
1126 flags:<flags-string>; // where <flags-string> is a space separated string
1128 // is "mt" for AArch64 memory tagging. lldb will
1131 error:<ascii-byte-error-string>; // where <ascii-byte-error-string> is
1135 If the address requested is not in a mapped region (e.g. we've jumped through
1137 of the unmapped region -- that is, the distance to the next valid region.
1150 // Like the 'm' (read) and 'M' (write) packets, this is a partner to the
1153 // It is called like
1159 // To test if this packet is available, send a addr/len of 0:
1166 // The standard quoting is applied to the payload -- characters
1177 // The length of the payload is not provided. A reliable, 8-bit clean,
1178 // transport layer is assumed.
1185 // target suspended on detach. The normal behavior is to resume execution
1191 // when we want the monitor to detach but not resume the target, we will
1209 // second form of this packet is used, otherwise the first form is
1210 // used. This packet is called prior to executing an expression, so
1214 // ensure we get the correct registers for a thread in case it is
1218 // unsigned - The save_id result is a non-zero unsigned integer value
1222 // "EXX" - or an error code in the form of EXX where XX is a
1226 // Low, this is mostly a convenience packet to avoid having to send all
1228 // for the QRestoreRegisterState is added.
1237 // restore all registers using the "save_id" which is an unsigned
1243 // If thread suffixes are enabled the second form of this packet is
1244 // used, otherwise the first form is used.
1251 // Low, this is mostly a convenience packet to avoid having to send all
1253 // for the QSaveRegisterState is added.
1261 // The load address is defined as the address of the first memory
1299 // is the same as in the qModuleInfo packet. The server signals the
1307 // may be slower if the target contains a large number of modules and
1325 // "S" means signal and "AA" is a hex signal number that describes why
1327 // packet is recommended to use instead of the "S" packet.
1330 // "T" means a thread stopped due to a unix signal where "AA" is a hex
1331 // signal number that describes why the program stopped. This is
1333 // - If key is a hex number, it is a register number and value is
1335 // - If key == "thread", then the value is the big endian hex
1337 // - If key == "core", then value is a hex number of the core on
1340 // value is the data address in big endian hex
1341 // - If key == "library", then value is ignore and "qXfer:libraries:read"
1345 // "W" means the process exited and "AA" is the exit status.
1348 // "X" means the process exited and "AA" is signal that caused the program
1352 // "O" means STDOUT has data that was written to its console and is
1354 // and the debugger is expected to continue to wait for another stop reply
1371 // "medata" unsigned There should be "mecount" of these and it is the data
1401 // reason that the thread stopped. This is only needed
1417 // this T packet is reporting as stopped.
1419 // "threads" key is already included in the T packet.
1432 // Since register values can be supplied with this packet, it is often useful
1437 // If a thread is stopped for no reason (like just because another thread
1444 // by running the process multiple times. If a breakpoint is hit while
1446 // is hit in the "reason", we will know to stop trying to do the step
1454 // do when controlling your process. A typical GDB server behavior is
1496 // "euid" integer A string value containing the decimal effective user ID
1497 // "egid" integer A string value containing the decimal effective group ID
1500 // platform is running as
1504 // separated by the character '-', where each argument is
1507 // The response consists of key/value pairs where the key is separated from the
1508 // values with colons and each pair is terminated with a semi colon. For a list
1540 // when the GDB server is connected to.
1542 // The response consists of key/value pairs where the key is separated from the
1543 // values with colons and each pair is terminated with a semi colon.
1549 // The "pid" key/value pair is only specified if the remote platform launched
1565 // ID. PID is specified as a decimal integer.
1570 // The response consists of key/value pairs where the key is separated from the
1571 // values with colons and each pair is terminated with a semi colon.
1581 // "euid" integer A string value containing the decimal effective user ID
1582 // "egid" integer A string value containing the decimal effective group ID
1584 // "triple" string A target triple ("x86_64-apple-macosx", "armv7-apple-ios")
1612 // gracefully if the packet is not supported.
1619 // This is a binary "is it supported" query. Return OK if you support
1623 // Low. This is required if you support vAttachOrWait, otherwise no support
1624 // is needed since the standard "I don't recognize this packet" response
1641 // whether the requested process exists already. This is racy,
1642 // however, so if you want to support this behavior it is better to
1655 // Low. This packet is only needed if the gdb remote stub wants to
1664 // Because this is a JSON string, the thread number is provided in base10.
1668 // is able to find the Thread Specific Address (TSD) for a thread and include
1674 // There are no requirements for what is included in the response. A simple
1677 // is associated with a GCD queue, and the requested Quality of Service (QoS)
1684 // these are. requested_qos is a dictionary with three key-value pairs in it -
1693 // Instead, the binary escaping convention is used for JSON data. This convention
1695 // the payload, the character '}' (0x7d) is emitted, then the metacharacter is emitted
1717 // where compression is used. Typically small packets do not benefit from compression,
1718 // as well as compression headers -- compression is most beneficial with larger packets.
1735 // Where "#00" is the actual checksum value if noack mode is not enabled. The checksum
1736 // value is for the "N<uncompressed payload>" or
1739 // The size of the uncompressed payload in base10 is provided because it will simplify
1740 // decompression if the final buffer size needed is known ahead of time.
1742 // Compression on low-latency connections is unlikely to be an improvement. Particularly
1778 // On OS X 10.11, iOS 9, tvOS 9, watchOS 2 and earlier, the packet is used like
1780 // where the image_list_address is an array of {void* load_addr, void* mod_date, void* pathname}
1781 // in the inferior process memory (and image_count is the number of elements in this array).
1782 // lldb is using information from the dyld_all_image_infos structure to make these requests to
1783 // debugserver. This use is not supported on macOS 10.12, iOS 10, tvOS 10, watchOS 3 or newer.
1791 // The second call is both a performance optimization (instead of having lldb read the mach-o head…
1793 // filename of the shared libraries (which is not available in the mach-o header/load commands.)
1843 // This is similar to the qXfer:libraries:read packet, and it could
1847 // information is read. Also the XML DTD would need to be extended
1852 // On OS X 10.11, iOS 9, tvOS 9, watchOS 2 and older: Low. If this packet is absent,
1854 // On macOS 10.12, iOS 10, tvOS 10, watchOS 3 and newer: High. If this packet is absent,
1866 // Low. This is a performance optimization, which speeds up debugging by avoiding
1871 The data in this packet is very similar to the stop reply packets, but is packaged in
1914 server to expedite memory that the client is likely to use (e.g., areas around the
1928 // shared cache. The shared cache is a collection of common libraries/frameworks that
1950 // Low. The packet is required to support connecting to gdbserver started
1958 The data in this packet is a JSON array of JSON objects with the following keys: