|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
12606d16 |
| 23-Mar-2022 |
Adrian Prantl <[email protected]> |
Revert "Expose GetAddressingBits() in the Process API."
This reverts commit 7504dd5e00f514628614db8ee07514c73220e597.
In newer review feedback it was pointed out that there is a better API for this
Revert "Expose GetAddressingBits() in the Process API."
This reverts commit 7504dd5e00f514628614db8ee07514c73220e597.
In newer review feedback it was pointed out that there is a better API for this in Process::GetCodeAddressMask().
show more ...
|
| #
7504dd5e |
| 23-Mar-2022 |
Adrian Prantl <[email protected]> |
Expose GetAddressingBits() in the Process API.
This is needed by the Swift Plugin.
See also https://github.com/apple/llvm-project/pull/4110.
Differential Revision: https://reviews.llvm.org/D122347
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4 |
|
| #
68099b1d |
| 11-Mar-2022 |
Jonas Devlieghere <[email protected]> |
[lldb] Add a getter for the process' system architecture
This patch adds a getter for the process' system architecture. I went with Process::GetSystemArchitecture to match Platform::GetSystemArchite
[lldb] Add a getter for the process' system architecture
This patch adds a getter for the process' system architecture. I went with Process::GetSystemArchitecture to match Platform::GetSystemArchitecture.
Differential revision: https://reviews.llvm.org/D121443
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc3 |
|
| #
ed1a83be |
| 09-Mar-2022 |
Pavel Labath <[email protected]> |
[lldb/gdb-remote] Remove ancient debugserver workaround
This workaround is the source of an awkwared Process->Platform dependency. While this could be solved in various ways (the only thing we reall
[lldb/gdb-remote] Remove ancient debugserver workaround
This workaround is the source of an awkwared Process->Platform dependency. While this could be solved in various ways (the only thing we really use is the plugin name), it may be better to just remove it -- the workaround was added 10 years ago (43c555dfc), and the affected debugservers were "old" even then, so hopefully they are not in use anymore.
Differential Revision: https://reviews.llvm.org/D121305
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2 |
|
| #
12c9c4a8 |
| 22-Feb-2022 |
Pavel Labath <[email protected]> |
[lldb/host] Remove monitor_signals argument from process monitoring functions
All current callers set the argument to false. monitor_signals=true used to be used in the Process plugins (which needed
[lldb/host] Remove monitor_signals argument from process monitoring functions
All current callers set the argument to false. monitor_signals=true used to be used in the Process plugins (which needed to know when the debugged process gets a signal), but this implementation has several serious issues, which means that individual process plugins now orchestrate the monitoring of debugged processes themselves.
This allows us to simplify the implementation (no need to play with process groups), and the interface (we only catch fatal events, so the callback is always called just once).
Differential Revision: https://reviews.llvm.org/D120425
show more ...
|
| #
d0810779 |
| 21-Feb-2022 |
Pavel Labath <[email protected]> |
[lldb] Modernize ThreadLauncher
Accept a function object instead of a raw pointer. This avoids a bunch of boilerplate typically needed to pass arguments to the thread functions.
Differential Revisi
[lldb] Modernize ThreadLauncher
Accept a function object instead of a raw pointer. This avoids a bunch of boilerplate typically needed to pass arguments to the thread functions.
Differential Revision: https://reviews.llvm.org/D120321
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
2937b282 |
| 01-Dec-2021 |
David Spickett <[email protected]> |
Reland "[lldb] Remove non address bits when looking up memory regions"
This reverts commit 0df522969a7a0128052bd79182c8d58e00556e2f.
Additional checks are added to fix the detection of the last mem
Reland "[lldb] Remove non address bits when looking up memory regions"
This reverts commit 0df522969a7a0128052bd79182c8d58e00556e2f.
Additional checks are added to fix the detection of the last memory region in GetMemoryRegions or repeating the "memory region" command when the target has non-address bits.
Normally you keep reading from address 0, looking up each region's end address until you get LLDB_INVALID_ADDR as the region end address. (0xffffffffffffffff)
This is what the remote will return once you go beyond the last mapped region: [0x0000fffffffdf000-0x0001000000000000) rw- [stack] [0x0001000000000000-0xffffffffffffffff) ---
Problem is that when we "fix" the lookup address, we remove some bits from it. On an AArch64 system we have 48 bit virtual addresses, so when we fix the end address of the [stack] region the result is 0. So we loop back to the start.
[0x0000fffffffdf000-0x0001000000000000) rw- [stack] [0x0000000000000000-0x0000000000400000) ---
To fix this I added an additional check for the last range. If the end address of the region is different once you apply FixDataAddress, we are at the last region.
Since the end of the last region will be the last valid mappable address, plus 1. That 1 will be removed by the ABI plugin.
The only side effect is that on systems with non-address bits, you won't get that last catch all unmapped region from the max virtual address up to 0xf...f.
[0x0000fffff8000000-0x0000fffffffdf000) --- [0x0000fffffffdf000-0x0001000000000000) rw- [stack] <ends here>
Though in some way this is more correct because that region is not just unmapped, it's not mappable at all.
No extra testing is needed because this is already covered by TestMemoryRegion.py, I simply forgot to run it on system that had both top byte ignore and pointer authentication.
This change has been tested on a qemu VM with top byte ignore, memory tagging and pointer authentication enabled.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D115508
show more ...
|
| #
a8ae6828 |
| 03-Jan-2022 |
Pavel Labath <[email protected]> |
[lldb] Delete GDBRemoteCommunicationReplayServer
This survived the reproducer deletion.
|
| #
0df52296 |
| 26-Nov-2021 |
David Spickett <[email protected]> |
Revert "Reland "[lldb] Remove non address bits when looking up memory regions""
This reverts commit fac3f20de55769d028bd92220e74f22fa57dd4b2.
I found this has broken how we detect the last memory r
Revert "Reland "[lldb] Remove non address bits when looking up memory regions""
This reverts commit fac3f20de55769d028bd92220e74f22fa57dd4b2.
I found this has broken how we detect the last memory region in GetMemoryRegions/"memory region" command.
When you're debugging an AArch64 system with pointer authentication, the ABI plugin will remove the top bit from the end address of the last user mapped area.
(lldb) [0x0000fffffffdf000-0x0001000000000000) rw- [stack]
ABI plugin removes anything above the 48th bit (48 bit virtual addresses by default on AArch64, leaving an address of 0.
(lldb) [0x0000000000000000-0x0000000000400000) ---
You get back a mapping for 0 and get into an infinite loop.
show more ...
|
| #
6f82264d |
| 24-Nov-2021 |
Pavel Labath <[email protected]> |
[lldb/gdb-remote] Remove more non-stop mode remnants
The read thread handling is completely dead code now that non-stop mode no longer exists.
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
fac3f20d |
| 03-Nov-2021 |
David Spickett <[email protected]> |
Reland "[lldb] Remove non address bits when looking up memory regions"
This reverts commit 5fbcf677347e38718461496d9e9e184a7a30c3fb.
ProcessDebugger is used in ProcessWindows and NativeProcessWindo
Reland "[lldb] Remove non address bits when looking up memory regions"
This reverts commit 5fbcf677347e38718461496d9e9e184a7a30c3fb.
ProcessDebugger is used in ProcessWindows and NativeProcessWindows. I thought I was simplifying things by renaming to DoGetMemoryRegionInfo in ProcessDebugger but the Native process side expects "GetMemoryRegionInfo".
Follow the pattern that WriteMemory uses. So: * ProcessWindows::DoGetMemoryRegioninfo calls ProcessDebugger::GetMemoryRegionInfo * NativeProcessWindows::GetMemoryRegionInfo does the same
show more ...
|
| #
5fbcf677 |
| 03-Nov-2021 |
David Spickett <[email protected]> |
Revert "[lldb] Remove non address bits when looking up memory regions"
This reverts commit 6f5ce43b433706c3ae5c37022d6c0964b6bfadf8 due to build failure on Windows.
|
| #
6f5ce43b |
| 03-Nov-2021 |
David Spickett <[email protected]> |
[lldb] Remove non address bits when looking up memory regions
On AArch64 we have various things using the non address bits of pointers. This means when you lookup their containing region you won't f
[lldb] Remove non address bits when looking up memory regions
On AArch64 we have various things using the non address bits of pointers. This means when you lookup their containing region you won't find it if you don't remove them.
This changes Process GetMemoryRegionInfo to a non virtual method that uses the current ABI plugin to remove those bits. Then it calls DoGetMemoryRegionInfo.
That function does the actual work and is virtual to be overriden by Process implementations.
A test case is added that runs on AArch64 Linux using the top byte ignore feature.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D102757
show more ...
|
| #
5f4980f0 |
| 22-Oct-2021 |
Pavel Labath <[email protected]> |
[lldb] Remove ConstString from Process, ScriptInterpreter and StructuredData plugin names
|
| #
a3939e15 |
| 15-Oct-2021 |
Pavel Labath <[email protected]> |
[lldb] Return StringRef from PluginInterface::GetPluginName
There is no reason why this function should be returning a ConstString.
While modifying these files, I also fixed several instances where
[lldb] Return StringRef from PluginInterface::GetPluginName
There is no reason why this function should be returning a ConstString.
While modifying these files, I also fixed several instances where GetPluginName and GetPluginNameStatic were returning different strings.
I am not changing the return type of GetPluginNameStatic in this patch, as that would necessitate additional changes, and this patch is big enough as it is.
Differential Revision: https://reviews.llvm.org/D111877
show more ...
|
| #
58492191 |
| 05-Oct-2021 |
Michał Górny <[email protected]> |
[lldb] [ABI] Apply AugmentRegisterInfo() to DynamicRegisterInfo::Registers
Call ABI::AugmentRegisterInfo() once with a vector of all defined registers rather than calling it for every individual reg
[lldb] [ABI] Apply AugmentRegisterInfo() to DynamicRegisterInfo::Registers
Call ABI::AugmentRegisterInfo() once with a vector of all defined registers rather than calling it for every individual register. Move and rename RemoteRegisterInfo from gdb-remote to DynamicRegisterInfo::Register, and use this class when augmenting registers.
Differential Revision: https://reviews.llvm.org/D111142
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
202af507 |
| 23-Sep-2021 |
Pavel Labath <[email protected]> |
Recommit: [lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
The previous version of the patch did not update the definitions in conditionally compiled code. This patch includ
Recommit: [lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
The previous version of the patch did not update the definitions in conditionally compiled code. This patch includes changes to ARC and windows targets.
Original commit message was:
These were added to support some mips registers on linux, but linux mips support has now been removed due.
They are still referenced in the freebds mips implementation, but the completeness of that implementation is also unknown. All other architectures just set these fields to zero, which is a cause of significant bloat in our register info definitions.
Arm also has registers with variable sizes, but they were implemented in a more gdb-compatible fashion and don't use this feature.
Differential Revision: https://reviews.llvm.org/D110914
show more ...
|
| #
b2c906da |
| 06-Oct-2021 |
Michael Forster <[email protected]> |
Revert "[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo"
This reverts commit 00e704bf080ffeeb9e334fb3ab71594f9aa50969.
This commit should should have updated llvm/llvm-pro
Revert "[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo"
This reverts commit 00e704bf080ffeeb9e334fb3ab71594f9aa50969.
This commit should should have updated llvm/llvm-project/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp like the other architectures.
show more ...
|
| #
00e704bf |
| 23-Sep-2021 |
Pavel Labath <[email protected]> |
[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
These were added to support some mips registers on linux, but linux mips support has now been removed due.
They are still r
[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
These were added to support some mips registers on linux, but linux mips support has now been removed due.
They are still referenced in the freebds mips implementation, but the completeness of that implementation is also unknown. All other architectures just set these fields to zero, which is a cause of significant bloat in our register info definitions.
Arm also has registers with variable sizes, but they were implemented in a more gdb-compatible fashion and don't use this feature.
Differential Revision: https://reviews.llvm.org/D110914
show more ...
|
| #
156cb4cc |
| 27-Sep-2021 |
Pavel Labath <[email protected]> |
[lldb] Remove non-stop mode code
We added some support for this mode back in 2015, but the feature was never productionized. It is completely untested, and there are known major structural lldb issu
[lldb] Remove non-stop mode code
We added some support for this mode back in 2015, but the feature was never productionized. It is completely untested, and there are known major structural lldb issues that need to be resolved before this feature can really be supported.
It also complicates making further changes to stop reply packet handling, which is what I am about to do.
Differential Revision: https://reviews.llvm.org/D110553
show more ...
|
| #
e2f780fb |
| 25-Sep-2021 |
Michał Górny <[email protected]> |
[lldb] [gdb-remote] Use llvm::StringRef.split() and llvm::to_integer()
Replace the uses of StringConvert combined with hand-rolled array splitting with llvm::StringRef.split() and llvm::to_integer()
[lldb] [gdb-remote] Use llvm::StringRef.split() and llvm::to_integer()
Replace the uses of StringConvert combined with hand-rolled array splitting with llvm::StringRef.split() and llvm::to_integer().
Differential Revision: https://reviews.llvm.org/D110472
show more ...
|
| #
fa456505 |
| 18-Sep-2021 |
Michał Górny <[email protected]> |
[lldb] [gdb-remote] Refactor getting remote regs to use local vector
Refactor remote register getters to collect them into a local std::vector rather than adding them straight into DynamicRegisterIn
[lldb] [gdb-remote] Refactor getting remote regs to use local vector
Refactor remote register getters to collect them into a local std::vector rather than adding them straight into DynamicRegisterInfo. The purpose of this change is to lay groundwork for switching value_regs and invalidate_regs to use local LLDB register numbers rather than remote numbers.
Differential Revision: https://reviews.llvm.org/D110025
show more ...
|
| #
bcb6b97c |
| 23-Sep-2021 |
Michał Górny <[email protected]> |
Revert "[lldb] [gdb-remote] Refactor getting remote regs to use local vector"
This reverts commit b03e701c145365ba339657ead54a2e0cc5c02776. This is causing regressions when XML support is disabled.
|
| #
b03e701c |
| 18-Sep-2021 |
Michał Górny <[email protected]> |
[lldb] [gdb-remote] Refactor getting remote regs to use local vector
Refactor remote register getters to collect them into a local std::vector rather than adding them straight into DynamicRegisterIn
[lldb] [gdb-remote] Refactor getting remote regs to use local vector
Refactor remote register getters to collect them into a local std::vector rather than adding them straight into DynamicRegisterInfo. The purpose of this change is to lay groundwork for switching value_regs and invalidate_regs to use local LLDB register numbers rather than remote numbers.
Differential Revision: https://reviews.llvm.org/D110025
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc3 |
|
| #
b0312676 |
| 10-Sep-2021 |
Pavel Labath <[email protected]> |
[lldb] Remove PluginInterface::GetPluginVersion
In all these years, we haven't found a use for this function (it has zero callers). Lets just remove the boilerplate.
Differential Revision: https://
[lldb] Remove PluginInterface::GetPluginVersion
In all these years, we haven't found a use for this function (it has zero callers). Lets just remove the boilerplate.
Differential Revision: https://reviews.llvm.org/D109600
show more ...
|