[Lldb-commits] [lldb] r194631 - Added documentation or the new QSaveRegisterState and QRestoreRegisterState packets.
Greg Clayton
gclayton at apple.com
Wed Nov 13 15:55:36 PST 2013
Author: gclayton
Date: Wed Nov 13 17:55:36 2013
New Revision: 194631
URL: http://llvm.org/viewvc/llvm-project?rev=194631&view=rev
Log:
Added documentation or the new QSaveRegisterState and QRestoreRegisterState packets.
Modified:
lldb/trunk/docs/lldb-gdb-remote.txt
Modified: lldb/trunk/docs/lldb-gdb-remote.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/docs/lldb-gdb-remote.txt?rev=194631&r1=194630&r2=194631&view=diff
==============================================================================
--- lldb/trunk/docs/lldb-gdb-remote.txt (original)
+++ lldb/trunk/docs/lldb-gdb-remote.txt Wed Nov 13 17:55:36 2013
@@ -856,6 +856,61 @@ for this region.
//----------------------------------------------------------------------
//----------------------------------------------------------------------
+// QSaveRegisterState
+// QSaveRegisterState;thread:XXXX;
+//
+// BRIEF
+// The QSaveRegisterState packet tells the remote debugserver to save
+// all registers and return a non-zero unique integer ID that
+// represents these save registers. If thread suffixes are enabled the
+// second form of this packet is used, otherwise the first form is
+// used. This packet is called prior to executing an expression, so
+// the remote GDB server should do anything it needs to in order to
+// ensure the registers that are saved are correct. On MacOSX this
+// involves calling "thread_abort_safely(mach_port_t thread)" to
+// ensure we get the correct registers for a thread in case it is
+// currently having code run on its behalf in the kernel.
+//
+// RESPONSE
+// unsigned - The save_id result is a non-zero unsigned integer value
+// that can be passed back to the GDB server using a
+// QRestoreRegisterState packet to restore the registers
+// one time.
+// "EXX" - or an error code in the form of EXX where XX is a
+// hex error code.
+//
+// PRIORITY TO IMPLEMENT
+// Low, this is mostly a convenience packet to avoid having to send all
+// registers via a g packet. It should only be implemented if support
+// for the QRestoreRegisterState is added.
+//----------------------------------------------------------------------
+
+//----------------------------------------------------------------------
+// QRestoreRegisterState:<save_id>
+// QRestoreRegisterState:<save_id>;thread:XXXX;
+//
+// BRIEF
+// The QRestoreRegisterState packet tells the remote debugserver to
+// restore all registers using the "save_id" which is an unsigned
+// integer that was returned from a previous call to
+// QSaveRegisterState. The restoration process can only be done once
+// as the data backing the register state will be freed upon the
+// completion of the QRestoreRegisterState command.
+//
+// If thread suffixes are enabled the second form of this packet is
+// used, otherwise the first form is used.
+//
+// RESPONSE
+// "OK" - if all registers were successfully restored
+// "EXX" - for any errors
+//
+// PRIORITY TO IMPLEMENT
+// Low, this is mostly a convenience packet to avoid having to send all
+// registers via a g packet. It should only be implemented if support
+// for the QSaveRegisterState is added.
+//----------------------------------------------------------------------
+
+//----------------------------------------------------------------------
// Stop reply packet extensions
//
// BRIEF
More information about the lldb-commits
mailing list