[all-commits] [llvm/llvm-project] 8561ad: Use remote regnums in expedited list, value regs a...

Muhammad Omair Javaid via All-commits all-commits at lists.llvm.org
Mon Feb 8 01:12:41 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8561ad9296b70b5a2af1574a1576090520d62a7c
      https://github.com/llvm/llvm-project/commit/8561ad9296b70b5a2af1574a1576090520d62a7c
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-02-08 (Mon, 08 Feb 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
    M lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    A lldb/test/API/functionalities/gdb_remote_client/TestRemoteRegNums.py

  Log Message:
  -----------
  Use remote regnums in expedited list, value regs and invalidate regs

Native register descriptions in LLDB specify lldb register numbers in
value_regs and invalidate_regs lists. These register numbers may not
match with Process gdb-remote register numbers which are generated by
native process after counting all registers in its register sets.

It was coincidentally not causing any problems as we never came across
a native target with dynamically changing register sets and register
numbers generated by counter matched with LLDB native register numbers.
This came up while testing target AArch64 SVE which can choose register
sets based on underlying hardware.

This patch fixes this behavior and always tries to use remote register
numbers while reading/writing registers over gdb-remote protocol.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D77043




More information about the All-commits mailing list