[all-commits] [llvm/llvm-project] 021139: When reading Aux file in chunks, read consecutive ...

Jason Molenda via All-commits all-commits at lists.llvm.org
Thu Jan 9 16:06:18 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 02113918ed6b5e514afd7d1e007131d36ac13f1d
      https://github.com/llvm/llvm-project/commit/02113918ed6b5e514afd7d1e007131d36ac13f1d
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2020-01-09 (Thu, 09 Jan 2020)

  Changed paths:
    A lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestRegDefinitionInParts.py
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp

  Log Message:
  -----------
  When reading Aux file in chunks, read consecutive byte ranges

qemu has a very small maximum packet size (4096) and it actually
only uses half of that buffer for some implementation reason,
so when lldb asks for the register target definitions, the x86_64
definition is larger than 4096/2 and we need to fetch it in two parts.

This patch and test is fixing a bug in
GDBRemoteCommunicationClient::ReadExtFeature when reading a target
file in multiple parts.  lldb was assuming that it would always
get back the maximum packet size response (4096) instead of
using the actual size received and asking for the next group of
bytes.

We now have two tests in gdb_remote_client for unique features
of qemu - TestNestedRegDefinitions.py would test the ability
of lldb to follow multiple levels of xml includes; I opted to
create a separate TestRegDefinitionInParts.py test to test this
wrinkle in qemu's gdb remote serial protocol stub implementation.
Instead of combining both tests into a single test file.

<rdar://problem/49537922>




More information about the All-commits mailing list