Skip to content

[lldb] Update qRegisterInfo docs to recommend target.xml #69853

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 21, 2023

Conversation

jasonmolenda
Copy link
Collaborator

Before target.xml, lldb had its own method for querying the remote stub of the registers it supports, qRegisterInfo. The gdb standard method of using a target.xml file to describe the available registers has become commonplace, and the lldb method for doing this is no longer needed.

Stubs should describe their registers to lldb, but it should be with the target.xml file.

Before target.xml, lldb had its own method for querying
the remote stub of the registers it supports, qRegisterInfo.
The gdb standard method of using a target.xml file to
describe the available registers has become commonplace, and
the lldb method for doing this is no longer needed.

Stubs should describe their registers to lldb, but it should
be with the target.xml file.
@llvmbot
Copy link
Member

llvmbot commented Oct 21, 2023

@llvm/pr-subscribers-lldb

Author: Jason Molenda (jasonmolenda)

Changes

Before target.xml, lldb had its own method for querying the remote stub of the registers it supports, qRegisterInfo. The gdb standard method of using a target.xml file to describe the available registers has become commonplace, and the lldb method for doing this is no longer needed.

Stubs should describe their registers to lldb, but it should be with the target.xml file.


Full diff: https://github.com/llvm/llvm-project/pull/69853.diff

1 Files Affected:

  • (modified) lldb/docs/lldb-gdb-remote.txt (+8-4)
diff --git a/lldb/docs/lldb-gdb-remote.txt b/lldb/docs/lldb-gdb-remote.txt
index 6eed70eab043fed..58269e4c2b688ba 100644
--- a/lldb/docs/lldb-gdb-remote.txt
+++ b/lldb/docs/lldb-gdb-remote.txt
@@ -581,11 +581,15 @@ read packet: <binary data>/E<error code>;AAAAAAAAA
 //  will get picked up automatically, and allows registers to change
 //  depending on the actual CPU type that is used.
 //
-//  NB: As of summer 2015, lldb can get register information from the
-//  "qXfer:features:read:target.xml" FSF gdb standard register packet
-//  where the stub provides register definitions in an XML file.
+//  NB: qRegisterInfo is deprecated in favor of the standard gdb remote
+//  serial protocol register description method, 
+//  "qXfer:features:read:target.xml".
 //  If qXfer:features:read:target.xml is supported, qRegisterInfo does
-//  not need to be implemented.
+//  not need to be implemented.  The target.xml format is used by most
+//  gdb RSP stubs whereas qRegisterInfo was an lldb-only design.
+//  qRegisterInfo requires one packet per register and can have undesirable
+//  performance costs at the start of a debug session, whereas target.xml
+//  may be able to describe all registers in a single packet.
 //----------------------------------------------------------------------
 
 With LLDB, for register information, remote GDB servers can add

Copy link

@tedwoodward tedwoodward left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jasonmolenda jasonmolenda merged commit ed0bb94 into llvm:main Oct 21, 2023
@jasonmolenda jasonmolenda deleted the recommend-target.xml-in-docs branch October 21, 2023 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants