[all-commits] [llvm/llvm-project] 7dc84e: [lldb] Support reading DW_OP_piece from file addre...
Jonas Devlieghere via All-commits
all-commits at lists.llvm.org
Tue Jun 4 10:25:21 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7dc84e225e11e37925db6f4f08269f447d2f2347
https://github.com/llvm/llvm-project/commit/7dc84e225e11e37925db6f4f08269f447d2f2347
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M lldb/include/lldb/Target/Target.h
M lldb/source/Expression/DWARFExpression.cpp
M lldb/unittests/Expression/DWARFExpressionTest.cpp
Log Message:
-----------
[lldb] Support reading DW_OP_piece from file address (#94026)
We received a bug report where someone was trying to print a global
variable without a process. This would succeed in a debug build but fail
in a on optimized build. We traced the issue back to the location being
described by a DW_OP_addr + DW_OP_piece.
The issue is that the DWARF expression evaluator only support reading
pieces from a load address. There's no reason it cannot do the same for
a file address, and indeed, that solves the problem.
I unsuccessfully tried to craft a test case to illustrate the original
example, using a global struct and trying to trick the compiler into
breaking it apart with SROA. Instead I wrote a unit test that uses a
mock target to read memory from.
rdar://127435923
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