[lldb-dev] [Bug 42471] New: GDB remote protocol 'A' packet format is not spec-compliant
via lldb-dev
lldb-dev at lists.llvm.org
Mon Jul 1 12:54:45 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=42471
Bug ID: 42471
Summary: GDB remote protocol 'A' packet format is not
spec-compliant
Product: lldb
Version: 8.0
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P
Component: All Bugs
Assignee: lldb-dev at lists.llvm.org
Reporter: spmichaels.work at gmail.com
CC: jdevlieghere at apple.com, llvm-bugs at lists.llvm.org
LLDB's GDB remote protocol implementation defines a parser for the 'A' packet
at tools/debugger/source/RNBRemote.cpp:1538 (i.e. RNBRemote::HandlePacket_A()).
This packet is used to pass an argv[] array to the program.
GDB's remote protocol spec defines the A packet as follows (see
(https://sourceware.org/gdb/onlinedocs/gdb/Packets.html):
---
‘A arglen,argnum,arg,…’
Initialized argv[] array passed into program. arglen specifies the number of
bytes in the hex encoded byte stream arg. See gdbserver for more details.
---
Note that `gdbserver` does not actually implement the A packet (see
https://github.com/bminor/binutils-gdb/blob/master/gdb/gdbserver/server.c), so
the note to "See gdbserver for more details" is moot.
LLDB's implementation assumes that 'arglen' and 'argnum' are base-10 unsigned
integers. However, the GDB remote protocol overview specifies that (see
https://sourceware.org/gdb/onlinedocs/gdb/Overview.html#Overview):
---
Except where otherwise noted all numbers are represented in HEX with leading
zeros suppressed.
---
Since the 'A' packet definition does not explicitly specify a base for arglen
and argnum, thesei should actually be base-16, not base-10 as they are now.
This would require changes to the two `strtoul()` calls on lines 1562 and 1574
of `RNBRemote.cpp`.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20190701/2c5458a0/attachment.html>
More information about the lldb-dev
mailing list