nomagic

no, it is not magic !

User Tools

Site Tools


gdbs:reply_stop_uc_t

stopped + infos reply

Format: ‘T AA n1:r1;n2:r2;…’

Meaning: The program received signal number AA (a two-digit hexadecimal number).

Each ‘n:r’ pair is interpreted as follows:

  • If n is a hexadecimal number, it is a register number, and the corresponding r gives that register’s value. The data r is a series of bytes in target byte order, with each byte given by a two-digit hex number.
  • If n is ‘thread’, then r is the thread ID of the stopped thread, as specified in thread-id syntax.
  • If n is ‘core’, then r is the hexadecimal number of the core on which the stop event was detected.
  • If n is a recognized stop reason, it describes a more specific event that stopped the target. The currently defined stop reasons are listed below. The aa should be ‘05’, the trap signal. At most one stop reason should be present.
  • Otherwise, GDB should ignore this ‘n:r’ pair and go on to the next; this allows extensions to the protocol in the future.

The currently defined stop reasons are:

  • ‘watch’
  • ‘rwatch’
  • ‘awatch’ The packet indicates a watchpoint hit, and r is the data address, in hex.
  • ‘syscall_entry’ The packet indicates a syscall entry, and r is the syscall number, in hex.
  • ‘syscall_return’ The packet indicates a syscall return, and r is the syscall number, in hex.
  • ‘library’ The packet indicates that the loaded libraries have changed. GDB should use ‘qXfer:libraries:read’ to fetch a new list of loaded libraries. The r part is ignored.
  • ‘replaylog’ The packet indicates that the target cannot continue replaying logged execution events, because it has reached the end (or the beginning when executing backward) of the log. The value of r will be either ‘begin’ or ‘end’.
  • ‘swbreak’ The packet indicates a software breakpoint instruction was executed, irrespective of whether it was GDB that planted the breakpoint or the breakpoint is hardcoded in the program. The r part must be left empty. On some architectures, such as x86, at the architecture level, when a breakpoint instruction executes the program counter points at the breakpoint address plus an offset. On such targets, the stub is responsible for adjusting the PC to point back at the breakpoint address. This packet should not be sent by default; older GDB versions did not support it. GDB requests it, by supplying an appropriate ‘qSupported’ feature. The remote stub must also supply the appropriate ‘qSupported’ feature indicating support. This packet is required for correct non-stop mode operation.
  • ‘hwbreak’ The packet indicates the target stopped for a hardware breakpoint. The r part must be left empty.This packet should not be sent by default; older GDB versions did not support it. GDB requests it, by supplying an appropriate ‘qSupported’ feature. The remote stub must also supply the appropriate ‘qSupported’ feature indicating support. This packet is required for correct non-stop mode operation.
  • ‘fork’ The packet indicates that fork was called, and r is the thread ID of the new child process, as specified in thread-id syntax. This packet is only applicable to targets that support fork events. This packet should not be sent by default; older GDB versions did not support it. GDB requests it, by supplying an appropriate ‘qSupported’ feature. The remote stub must also supply the appropriate ‘qSupported’ feature indicating support.
  • ‘vfork’ The packet indicates that vfork was called, and r is the thread ID of the new child process, as specified in thread-id syntax. This packet is only applicable to targets that support vfork events. This packet should not be sent by default; older GDB versions did not support it. GDB requests it, by supplying an appropriate ‘qSupported’ feature. The remote stub must also supply the appropriate ‘qSupported’ feature indicating support.
  • ‘vforkdone’ The packet indicates that a child process created by a vfork has either called exec or terminated, so that the address spaces of the parent and child process are no longer shared. The r part is ignored. This packet is only applicable to targets that support vforkdone events. This packet should not be sent by default; older GDB versions did not support it. GDB requests it, by supplying an appropriate ‘qSupported’ feature. The remote stub must also supply the appropriate ‘qSupported’ feature indicating support.
  • ‘exec’ The packet indicates that execve was called, and r is the absolute pathname of the file that was executed, in hex. This packet is only applicable to targets that support exec events. This packet should not be sent by default; older GDB versions did not support it. GDB requests it, by supplying an appropriate ‘qSupported’ feature. The remote stub must also supply the appropriate ‘qSupported’ feature indicating support.
  • ‘clone’ The packet indicates that clone was called, and r is the thread ID of the new child thread, as specified in thread-id syntax. This packet is only applicable to targets that support clone events. This packet should not be sent by default; GDB requests it with the QThreadOptions packet.
  • ‘create’ The packet indicates that the thread was just created. The new thread is stopped until GDB sets it running with a resumption packet. This packet should not be sent by default; GDB requests it with the QThreadEvents packet. The r part is ignored.
gdbs/reply_stop_uc_t.txt · Last modified: by lars