llvm-project/lldb
Adrian Prantl 9b23df63ec Implement DW_OP_convert
This patch adds basic support for DW_OP_convert[1] for integer
types. Recent versions of LLVM's optimizer may insert this opcode into
DWARF expressions. DW_OP_convert is effectively a type cast operation
that takes a reference to a base type DIE (or zero) and then casts the
value at the top of the DWARF stack to that type. Internally this
works by changing the bit size of the APInt that is used as backing
storage for LLDB's DWARF stack.

I managed to write a unit test for this by implementing a mock YAML
object file / module that takes debug info sections in yaml2obj
format.

[1] Typed DWARF stack. http://www.dwarfstd.org/ShowIssue.php?issue=140425.1

<rdar://problem/48167864>

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

llvm-svn: 371532
2019-09-10 16:17:38 +00:00
..
cmake Fix windows-x86-debug compilation with python enabled using multi-target generator 2019-09-05 17:22:30 +00:00
docs [lldb] Remove xcode bot from website listing and fix link to sanitized 2019-09-06 07:11:14 +00:00
examples Revert [heap.py] Add missing declaration for malloc_get_all_zones 2019-08-22 21:01:45 +00:00
include/lldb Implement DW_OP_convert 2019-09-10 16:17:38 +00:00
lit Revert "[Reproducer] Add a `cont` to ModuleCXX.test" 2019-09-09 22:07:45 +00:00
packages/Python/lldbsuite [lldb] Readd missing functionalities/breakpoint tests 2019-09-10 12:04:04 +00:00
resources [CMake] Revised LLDB.framework builds 2019-01-04 12:46:50 +00:00
scripts [Python] Implement __next__ for value_iter 2019-09-04 18:59:13 +00:00
source Implement DW_OP_convert 2019-09-10 16:17:38 +00:00
test [test] Fix various module cache bugs and inconsistencies 2019-08-29 18:37:05 +00:00
third_party/Python/module Initial support for native debugging of x86/x64 Windows processes 2019-08-13 22:18:01 +00:00
tools [Utility] Replace `lldb_private::CleanUp` by `llvm::scope_exit` 2019-09-10 00:20:50 +00:00
unittests Implement DW_OP_convert 2019-09-10 16:17:38 +00:00
utils [test] Fix various module cache bugs and inconsistencies 2019-08-29 18:37:05 +00:00
.arcconfig
.clang-format
.gitignore Add .noindex to the gitignore 2019-04-05 17:57:42 +00:00
CMakeLists.txt [test] Fix various module cache bugs and inconsistencies 2019-08-29 18:37:05 +00:00
CODE_OWNERS.txt [lldb][NFC] Cleanup mentions and code related to lldb-mi 2019-07-19 15:55:23 +00:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
use_lldb_suite_root.py