SuccessChanges

Summary

  1. [LLDB] [PECOFF] Don't crash in ReadImageDataByRVA for addresses out of (details)
  2. [LLDB] [Windows] Remove a TODO which probably won't be implemented (details)
  3. [LLDB] [PECOFF] Fix error handling for executables that (details)
  4. [LLDB] [Windows] Fix Windows-specific race condition in LLDB for session (details)
  5. [yaml2obj/obj2yaml] - Add support for SHT_GNU_HASH section. (details)
  6. [lldb/lit] Introduce %clang_host substitutions (details)
Commit 7e1a3076419d4d453d71143a1e81409ea1db177c by martin
[LLDB] [PECOFF] Don't crash in ReadImageDataByRVA for addresses out of
range
This can happen e.g. when unwinding doesn't work perfectly.
Differential Revision: https://reviews.llvm.org/D69502
The file was modifiedlldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
The file was addedlldb/test/Shell/Minidump/Windows/broken-unwind.test
The file was addedlldb/test/Shell/Minidump/Windows/Inputs/broken-unwind.exe.yaml
The file was addedlldb/test/Shell/Minidump/Windows/Inputs/broken-unwind.dmp.yaml
Commit a42967f63c96b30dd6873ceb7b2932eb7cf2cd05 by martin
[LLDB] [Windows] Remove a TODO which probably won't be implemented
Contrary to WoW64 on x86_64, there's no struct similar to WOW64_CONTEXT
defined, for storing and handling the CPU state of an ARM32 process from
an ARM64 process. Thus, making an ARM64 lldb-server able to control
ARM32 processes seems infeasible at the moment.
(The normal CONTEXT struct has a different layout on each architecture.
In addition to this, a WOW64_CONTEXT struct always is defined, that can
store the CPU state of an x86_32 process, to allow handling it from an
x86_64 process. But there's no similar universally available struct for
ARM32.)
The file was modifiedlldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp
Commit 3db1d138b1172b5855f35ab74dbf3bf327f517d2 by martin
[LLDB] [PECOFF] Fix error handling for executables that
object::createBinary errors out on
llvm::object::createBinary returns an Expected<>, which requires not
only checking the object for success, but also requires consuming the
Error, if one was set.
Use LLDB_LOG_ERROR for this case, and change an existing similar log
statement to use it as well, to make sure the Error is consumed even if
the log channel is disabled.
Differential Revision: https://reviews.llvm.org/D69646
The file was modifiedlldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
The file was addedlldb/test/Shell/ObjectFile/PECOFF/invalid-export-table.yaml
Commit 403cd574b6d9fbdae1b39fe9d2576b02c7139486 by martin
[LLDB] [Windows] Fix Windows-specific race condition in LLDB for session
lifetime
This can e.g. happen if the debugged executable exits before the initial
stop, e.g. if it fails to load dependent DLLs.
Add a virtual destructor to ProcessDebugger and let it clean up the
session, and make ProcessWindows::OnExitProcess call
ProcessDebugger::OnExitProcess for shared parts.
Fix suggestion by Adrian McCarthy.
Differential Revision: https://reviews.llvm.org/D69503
The file was modifiedlldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
The file was modifiedlldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
The file was modifiedlldb/source/Plugins/Process/Windows/Common/ProcessDebugger.h
The file was addedlldb/test/Shell/Process/Windows/launch_failure.yaml
Commit a7aee6c47a1b12dd7d579b4f98d7049eb1e987ce by grimar
[yaml2obj/obj2yaml] - Add support for SHT_GNU_HASH section.
This adds parsing and dumping support for GNU hash sections. They are
described nicely here:
https://blogs.oracle.com/solaris/gnu-hash-elf-sections-v2
Differential revision: https://reviews.llvm.org/D69399
The file was addedllvm/test/tools/yaml2obj/elf-gnu-hash-section.yaml
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was addedllvm/test/tools/obj2yaml/elf-gnu-hash-section.yaml
The file was modifiedllvm/test/tools/llvm-readobj/elf-section-types.test
Commit 9c739252261ea762d1bbbd8234d93c9038711fcd by pavel
[lldb/lit] Introduce %clang_host substitutions
Summary: This patch addresses an ambiguity in how our existing tests
invoke the compiler. Roughly two thirds of our current "shell" tests
invoke the compiler to build the executables for the host. However,
there is also a significant number of tests which don't build a host
binary (because they don't need to run it) and instead they hardcode a
certain target.
We also have code which adds a bunch of default arguments to the %clang
substitutions. However, most of these arguments only really make sense
for the host compilation. So far, this has worked mostly ok, because the
arguments we were adding were not conflicting with the target-hardcoding
tests (though they did provoke an occasional "argument unused" warning).
However, this started to break down when we wanted to use
target-hardcoding clang-cl tests (D69031) because clang-cl has a
substantially different command line, and it was getting very confused
by some of the arguments we were adding on non-windows hosts.
This patch avoid this problem by creating separate %clang(xx,_cl)_host
substutitions, which are specifically meant to be used for compiling
host binaries. All funny host-specific options are moved there. To
ensure that the regular %clang substitutions are not used for compiling
host binaries (skipping the extra arguments) I employ a little
hac^H^H^Htrick -- I add an invalid --target argument to the %clang
substitution, which means that one has to use an explicit --target in
order for the compilation to succeed.
Reviewers: JDevlieghere, aprantl, mstorsjo, espindola
Subscribers: emaste, arichardson, MaskRay, jfb, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D69619
The file was modifiedlldb/test/Shell/Watchpoint/SetErrorCases.test
The file was modifiedlldb/test/Shell/Register/arm-fp-read.test
The file was modifiedlldb/test/Shell/Register/x86-64-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-zmm-read.test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/deterministic-build.cpp
The file was modifiedlldb/test/Shell/Register/arm-gp-read.test
The file was modifiedlldb/test/Shell/Reproducer/Functionalities/TestImageList.test
The file was modifiedlldb/test/Shell/Register/x86-64-xmm16-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm-write.test
The file was modifiedlldb/test/Shell/ExecControl/StopHook/stop-hook.test
The file was modifiedlldb/test/Shell/Register/x86-mm-xmm-read.test
The file was modifiedlldb/test/Shell/Reproducer/TestDump.test
The file was modifiedlldb/test/Shell/Register/x86-64-zmm-write.test
The file was modifiedlldb/test/Shell/SymbolFile/target-symbols-add-unwind.test
The file was modifiedlldb/test/Shell/Register/x86-zmm-write.test
The file was modifiedlldb/test/Shell/ExecControl/StopHook/stop-hook-threads.test
The file was modifiedlldb/test/Shell/Register/aarch64-fp-read.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm16-read.test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/clang-ast-from-dwarf-unamed-and-anon-structs.cpp
The file was modifiedlldb/test/Shell/helper/toolchain.py
The file was modifiedlldb/test/Shell/Unwind/eh-frame-dwarf-unwind.test
The file was modifiedlldb/test/Shell/Register/aarch64-gp-read.test
The file was modifiedlldb/test/Shell/Unwind/eh-frame-small-fde.test
The file was modifiedlldb/test/Shell/Register/x86-mm-xmm-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm16-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-read.test
The file was modifiedlldb/test/Shell/Reproducer/TestFileRepro.test
The file was modifiedlldb/test/Shell/ObjectFile/ELF/minidebuginfo-set-and-hit-breakpoint.test
The file was modifiedlldb/test/Shell/Process/TestEnvironment.test
The file was modifiedlldb/test/Shell/Register/x86-gp-write.test
The file was modifiedlldb/test/Shell/SymbolFile/PDB/function-level-linking.test
The file was modifiedlldb/test/Shell/Reproducer/TestReuseDirectory.test
The file was modifiedlldb/test/Shell/Host/TestCustomShell.test
The file was modifiedlldb/test/Shell/Reproducer/TestGDBRemoteRepro.test
The file was modifiedlldb/test/Shell/Driver/TestTarget.test
The file was modifiedlldb/test/Shell/Register/x86-zmm-read.test
The file was modifiedlldb/test/Shell/Register/x86-ymm-read.test
The file was modifiedlldb/test/Shell/Register/x86-64-xmm16-read.test
The file was modifiedlldb/test/Shell/Reproducer/Functionalities/TestStepping.test
The file was modifiedlldb/test/Shell/Register/x86-gp-read.test
The file was modifiedlldb/test/Shell/Unwind/trap_frame_sym_ctx.test
The file was modifiedlldb/test/Shell/Reproducer/Functionalities/TestDataFormatter.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm-read.test
The file was modifiedlldb/test/Shell/Reproducer/TestRelativePath.test
The file was modifiedlldb/test/Shell/Settings/TestFrameFormatColor.test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/debug-types-expressions.test
The file was modifiedlldb/test/Shell/Settings/TestFrameFormatNoColor.test
The file was modifiedlldb/test/Shell/Register/x86-64-gp-write.test
The file was modifiedlldb/test/Shell/Unwind/prefer-debug-over-eh-frame.test
The file was modifiedlldb/test/Shell/Unwind/unwind-plan-dwarf-dump.test
The file was modifiedlldb/test/Shell/Expr/TestIRMemoryMapWindows.test
The file was modifiedlldb/test/Shell/Expr/TestIRMemoryMap.test
The file was modifiedlldb/test/Shell/Heap/heap-cstr.test
The file was modifiedlldb/test/Shell/Driver/TestSingleQuote.test
The file was modifiedlldb/test/Shell/Reproducer/Modules/TestModuleCXX.test
The file was modifiedlldb/test/Shell/Register/x86-64-gp-read.test
The file was modifiedlldb/test/Shell/Reproducer/TestWorkingDir.test
The file was modifiedlldb/test/Shell/Commands/command-script-import.test
The file was modifiedlldb/test/Shell/Register/x86-ymm-write.test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/anon_class_w_and_wo_export_symbols.ll