[all-commits] [llvm/llvm-project] 3336d7: [lldb][NFC] New names for the two RegisterLocation...

Jason Molenda via All-commits all-commits at lists.llvm.org
Mon Sep 23 10:29:44 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3336d73126ae7ebaadf7c3a4d85e373eaae8cda6
      https://github.com/llvm/llvm-project/commit/3336d73126ae7ebaadf7c3a4d85e373eaae8cda6
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-09-23 (Mon, 23 Sep 2024)

  Changed paths:
    M lldb/include/lldb/Symbol/UnwindPlan.h
    M lldb/include/lldb/Target/ABI.h
    M lldb/include/lldb/Target/RegisterContextUnwind.h
    M lldb/include/lldb/Target/UnwindLLDB.h
    M lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
    M lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h
    M lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
    M lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp
    M lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp
    M lldb/source/Symbol/ArmUnwindInfo.cpp
    M lldb/source/Symbol/DWARFCallFrameInfo.cpp
    M lldb/source/Symbol/FuncUnwinders.cpp
    M lldb/source/Symbol/UnwindPlan.cpp
    M lldb/source/Target/ABI.cpp
    M lldb/source/Target/RegisterContextUnwind.cpp
    M lldb/source/Target/UnwindLLDB.cpp
    M lldb/unittests/UnwindAssembly/ARM64/TestArm64InstEmulation.cpp
    M lldb/unittests/UnwindAssembly/PPC64/TestPPC64InstEmulation.cpp
    M lldb/unittests/UnwindAssembly/x86/Testx86AssemblyInspectionEngine.cpp

  Log Message:
  -----------
  [lldb][NFC] New names for the two RegisterLocation classes (#109611)

lldb has two RegisterLocation classes that do slightly different things.

UnwindPlan::Row::RegisterLocation (new: AbstractRegisterLocation) has a
description of how to find a register's value or location, not specific
to a particular stopping point. It may say that at a given offset into a
function, the caller's register has been spilled to stack memory at CFA
minus an offset. Or it may say that the caller's register is at a DWARF
exprssion.

UnwindLLDB::RegisterLocation (new: ConcreteRegisterLocation) is a
specific address where the register is currently stored, or the register
it has been copied into, or its value at this point in the current
function execution.

When lldb stops in a function, it interprets the
AbstractRegisterLocation's instructions using the register context and
stack memory, to create the ConcreteRegisterLocation at this point in
time for this stack frame.

I'm not thrilled with AbstractRegisterLocation and
ConcreteRegisterLocation, but it's better than the same name and it will
be easier to update them if someone suggests a better pair.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list