#
64bb9cf7 |
| 30-Mar-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [Process/gdb-remote] Fix TID reading to use U64
Fix multiple instances of reading thread-id to use U64 type instead of U32. This is consistent with lldb::tid_t being a 64-bit type.
|
#
2afaf072 |
| 24-Jan-2021 |
Augusto Noronha <augusto2112@me.com> |
Implement vAttachOrWait
Implements the required functions on gdb-remote so the '--include-existing' flag of process attach works correctly on Linux.
Reviewed By: labath, clayborg
Differential Revi
Implement vAttachOrWait
Implements the required functions on gdb-remote so the '--include-existing' flag of process attach works correctly on Linux.
Reviewed By: labath, clayborg
Differential Revision: https://reviews.llvm.org/D94672
show more ...
|
#
2bbf724f |
| 14-Jan-2021 |
Augusto Noronha <augusto2112@me.com> |
Implement vAttachWait in lldb-server
This commit vAttachWait in lldb-server, so --waitfor can be used on Linux
Reviewed By: labath, clayborg
Differential Revision: https://reviews.llvm.org/D93895
|
#
78cb4562 |
| 01-Dec-2020 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Make offset field optional in RegisterInfo packet for Arm64
This patch carries forward our aim to remove offset field from qRegisterInfo packets and XML register description. I have created a new fu
Make offset field optional in RegisterInfo packet for Arm64
This patch carries forward our aim to remove offset field from qRegisterInfo packets and XML register description. I have created a new function which returns if offset fields are dynamic meaning client can calculate offset on its own based on register number sequence and register size. For now this function only returns true for NativeRegisterContextLinux_arm64 but we can test this for other architectures and make it standard later.
As a consequence we do not send offset field from lldb-server (arm64 for now) while other stubs dont have an offset field so it wont effect them for now. On the client side we have replaced previous offset calculation algorithm with a new scheme, where we sort all primary registers in increasing order of remote regnum and then calculate offset incrementally.
This committ also includes a test to verify all of above functionality on Arm64.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D91241
show more ...
|
#
b69c09bf |
| 26-Nov-2020 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Support custom expedited register set in gdb-remote
This patch adds capability to introduce a custom expedited register set in gdb remote. Currently we send register set 0 as expedited register set
Support custom expedited register set in gdb-remote
This patch adds capability to introduce a custom expedited register set in gdb remote. Currently we send register set 0 as expedited register set but for the case of AArch64 SVE we intend to send additional information about SVE registers size/offset configuration which can be calculated from vg register. Therefore we will expedited Vg register in case of AArch64 is in SVE mode to speedup register configuration calculations.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D82853
show more ...
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2 |
|
#
32541685 |
| 17-Aug-2020 |
David Spickett <david.spickett@linaro.org> |
[lldb][AArch64/Linux] Show memory tagged memory regions
This extends the "memory region" command to show tagged regions on AArch64 Linux when the MTE extension is enabled.
(lldb) memory region the_
[lldb][AArch64/Linux] Show memory tagged memory regions
This extends the "memory region" command to show tagged regions on AArch64 Linux when the MTE extension is enabled.
(lldb) memory region the_page [0x0000fffff7ff8000-0x0000fffff7ff9000) rw- memory tagging: enabled
This is done by adding an optional "flags" field to the qMemoryRegion packet. The only supported flag is "mt" but this can be extended.
This "mt" flag is read from /proc/{pid}/smaps on Linux, other platforms will leave out the "flags" field.
Where this "mt" flag is received "memory region" will show that it is enabled. If it is not or the target doesn't support memory tagging, the line is not shown. (since majority of the time tagging will not be enabled)
Testing is added for the existing /proc/{pid}/maps parsing and the new smaps parsing. Minidump parsing has been updated where needed, though it only uses maps not smaps.
Target specific tests can be run with QEMU and I have added MTE flags to the existing helper scripts.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D87442
show more ...
|
#
21555fff |
| 29-Oct-2020 |
Walter Erquinigo <a20012251@gmail.com> |
[intel-pt][trace] Implement a "get supported trace type" packet
Depends on D89283.
The goal of this packet (jTraceGetSupportedType) is to be able to query the gdb-server for the tracing technology
[intel-pt][trace] Implement a "get supported trace type" packet
Depends on D89283.
The goal of this packet (jTraceGetSupportedType) is to be able to query the gdb-server for the tracing technology that can work for the current debuggeer, which can make the user experience simpler but allowing the user to simply type
thread trace start
to start tracing the current thread without even telling the debugger to use "intel-pt", for example. Similarly, `thread trace start [args...]` would accept args beloging to the working trace type.
Also, if the user typed
help thread trace start
We could directly show the help information of the trace type that is supported for the target, or mention instead that no tracing is supported, if that's the case.
I added some simple tests, besides, when I ran this on my machine with intel-pt support, I got
$ process plugin packet send "jTraceSupportedType" packet: jTraceSupportedType response: {"description":"Intel Processor Trace","pluginName":"intel-pt"}
On a machine without intel-pt support, I got
$ process plugin packet send "jTraceSupportedType" packet: jTraceSupportedType response: E00;
Reviewed By: clayborg, labath
Differential Revision: https://reviews.llvm.org/D90490
show more ...
|
#
d2700b78 |
| 07-Sep-2020 |
Pavel Labath <labath@google.com> |
[lldb/Utility] Add unit tests for RegisterValue::GetScalarValue
Buggy cases are commented out.
Also sneak in a modernization of a RegisterValue constructor.
|
#
8e6bcbb4 |
| 31-Oct-2020 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [Process/FreeBSDRemote] Fix attaching via lldb-server
Fix two bugs that caused attaching to a process in a pre-connected lldb-server to fail. These are:
1. Prematurely reporting status in N
[lldb] [Process/FreeBSDRemote] Fix attaching via lldb-server
Fix two bugs that caused attaching to a process in a pre-connected lldb-server to fail. These are:
1. Prematurely reporting status in NativeProcessFreeBSD::Attach(). The SetState() call defaulted to notify the process, and LLGS tried to send the stopped packet before the process instance was assigned to it. While at it, add an assert for that in LLGS.
2. Duplicate call to ReinitializeThreads() (via SetupTrace()) that overwrote the stopped status in threads. Now SetupTrace() is called directly by NativeProcessFreeBSD::Attach() (not the Factory) in place of ReinitializeThreads().
This fixes at least commands/process/attach/TestProcessAttach.py and python_api/hello_world/TestHelloWorld.py.
Differential Revision: https://reviews.llvm.org/D90525
show more ...
|
#
2c4226f8 |
| 09-Oct-2020 |
Pavel Labath <pavel@labath.sk> |
[lldb-server][linux] Add ability to allocate memory
This patch adds support for the _M and _m gdb-remote packets, which (de)allocate memory in the inferior. This works by "injecting" a m(un)map sysc
[lldb-server][linux] Add ability to allocate memory
This patch adds support for the _M and _m gdb-remote packets, which (de)allocate memory in the inferior. This works by "injecting" a m(un)map syscall into the inferior. This consists of: - finding an executable page of memory - writing the syscall opcode to it - setting up registers according to the os syscall convention - single stepping over the syscall
The advantage of this approach over calling the mmap function is that this works even in case the mmap function is buggy or unavailable. The disadvantage is it is more platform-dependent, which is why this patch only works on X86 (_32 and _64) right now. Adding support for other linux architectures should be easy and consist of defining the appropriate syscall constants. Adding support for other OSes depends on the its ability to do a similar trick.
Differential Revision: https://reviews.llvm.org/D89124
show more ...
|
#
e2f1fe36 |
| 09-Oct-2020 |
Pavel Labath <pavel@labath.sk> |
[lldb/Utility] Introduce UnimplementedError
This is essentially a replacement for the PacketUnimplementedError previously present in the gdb-remote server code.
The reason I am introducing a generi
[lldb/Utility] Introduce UnimplementedError
This is essentially a replacement for the PacketUnimplementedError previously present in the gdb-remote server code.
The reason I am introducing a generic error is because I wanted the native process classes to be able to signal that they do not support some functionality. They could not use PacketUnimplementedError as they are independent of a specific transport protocol. Putting the error class in the the native process code was also not ideal because the gdb-remote code is also used for lldb-server's platform mode, which does not (should not) know how to debug individual processes.
I'm putting it under Utility, as I think it can be generally useful for notifying about unsupported/unimplemented functionality (and in particular, for programatically testing whether something is unsupported).
Differential Revision: https://reviews.llvm.org/D89121
show more ...
|
Revision tags: llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1 |
|
#
9f8b4472 |
| 29-Apr-2020 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Extend max register size to accommodate AArch64 SVE vector regs
Summary: This patch increases maximum register size to 256 bytes to accommodate AArch64 SVE registers maximum possible size of 256 byt
Extend max register size to accommodate AArch64 SVE vector regs
Summary: This patch increases maximum register size to 256 bytes to accommodate AArch64 SVE registers maximum possible size of 256 bytes.
Reviewers: labath, jankratochvil, rengolin
Reviewed By: labath
Subscribers: tschuett, kristof.beyls, danielkiss, lldb-commits
Differential Revision: https://reviews.llvm.org/D77044
show more ...
|
#
e609fe68 |
| 07-Apr-2020 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Revert "[lldb-server] jThreadsInfo returns stack memory"
This reverts commit a53bf9b7c8f1ca950226a55c0e99fd706a7b6ad2.
|
#
41610d66 |
| 06-Apr-2020 |
Davide Italiano <ditaliano@apple.com> |
[gdb-remote] Moving prevents copy elision. Found by clang.
|
#
e9264b74 |
| 06-Apr-2020 |
Kazuaki Ishizaki <ishizaki@jp.ibm.com> |
[lldb] NFC: Fix trivial typo in comments, documents, and messages
Differential Revision: https://reviews.llvm.org/D77460
|
#
a53bf9b7 |
| 06-Apr-2020 |
Jaroslav Sevcik <jarin@google.com> |
[lldb-server] jThreadsInfo returns stack memory
This patch adds parts of the stack that should be useful for unwinding to the jThreadsInfo reply from lldb-server. We return the top of the stack (12
[lldb-server] jThreadsInfo returns stack memory
This patch adds parts of the stack that should be useful for unwinding to the jThreadsInfo reply from lldb-server. We return the top of the stack (12 words), and we also try to walk the frame pointer linked list and return the memory containing frame pointer and return address pairs. The idea is to cover the cases with and without frame pointer omission.
Differential Revision: https://reviews.llvm.org/D74398
show more ...
|
#
451741a9 |
| 02-Apr-2020 |
Pavel Labath <pavel@labath.sk> |
[lldb] Change Communication::SetConnection to take a unique_ptr
The function takes ownership of the object. This makes that explicit, and avoids unowned pointers floating around.
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3 |
|
#
af64b319 |
| 20-Feb-2020 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Add target.xml support for qXfer request.
Summary: Requesting registers one by one takes a while in our project. We want to get rid of it by using target.xml.
Reviewers: jarin, labath, omjavaid
Re
Add target.xml support for qXfer request.
Summary: Requesting registers one by one takes a while in our project. We want to get rid of it by using target.xml.
Reviewers: jarin, labath, omjavaid
Reviewed By: labath, omjavaid
Subscribers: omjavaid, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D74217
show more ...
|
#
fdc122e4 |
| 18-Feb-2020 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Revert "[lldb/lldb-server] Add target.xml support for qXfer request."
This patch cause floating point registers to fail on LLDB aarch64-linux buildbot.
http://lab.llvm.org:8011/builders/lldb-aarch6
Revert "[lldb/lldb-server] Add target.xml support for qXfer request."
This patch cause floating point registers to fail on LLDB aarch64-linux buildbot.
http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/1713
This reverts commit aedc196101e33bd58f7443c5b93398418ce55edf.
show more ...
|
#
aedc1961 |
| 17-Feb-2020 |
Levon Ter-Grigoryan <patriosthegreat@protonmail.ch> |
[lldb/lldb-server] Add target.xml support for qXfer request.
Summary: Synthesize target.xml in lldb-server to avoid a long chain of qRegisterInfo packets, which can be slow over low-latency links.
[lldb/lldb-server] Add target.xml support for qXfer request.
Summary: Synthesize target.xml in lldb-server to avoid a long chain of qRegisterInfo packets, which can be slow over low-latency links.
Reviewers: jarin, labath
Reviewed By: labath
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D74217
show more ...
|
Revision tags: llvmorg-10.0.0-rc2 |
|
#
642bc15d |
| 11-Feb-2020 |
Raphael Isemann <teemperor@gmail.com> |
[lldb][NFC] Remove several inefficient ConstString -> const char * -> StringRef conversions
StringRef will call strlen on the C string which is inefficient (as ConstString already knows the string l
[lldb][NFC] Remove several inefficient ConstString -> const char * -> StringRef conversions
StringRef will call strlen on the C string which is inefficient (as ConstString already knows the string lenght and so does StringRef). This patch replaces all those calls with GetStringRef() which doesn't recompute the length.
show more ...
|
#
31cf5819 |
| 06-Feb-2020 |
Pavel Labath <labath@google.com> |
[lldb] Explicitly qualify calls to std::static_pointer_cast
Due to a c++ quirk, these are found through ADL only when a function with that name is found through regular lookup. We have one such func
[lldb] Explicitly qualify calls to std::static_pointer_cast
Due to a c++ quirk, these are found through ADL only when a function with that name is found through regular lookup. We have one such function in SharingPtr.h, but I am trying to remove it.
show more ...
|
Revision tags: llvmorg-10.0.0-rc1 |
|
#
80814287 |
| 24-Jan-2020 |
Raphael Isemann <teemperor@gmail.com> |
[lldb][NFC] Fix all formatting errors in .cpp file headers
Summary: A *.cpp file header in LLDB (and in LLDB) should like this: ``` //===-- TestUtilities.cpp ----------------------------------------
[lldb][NFC] Fix all formatting errors in .cpp file headers
Summary: A *.cpp file header in LLDB (and in LLDB) should like this: ``` //===-- TestUtilities.cpp -------------------------------------------------===// ``` However in LLDB most of our source files have arbitrary changes to this format and these changes are spreading through LLDB as folks usually just use the existing source files as templates for their new files (most notably the unnecessary editor language indicator `-*- C++ -*-` is spreading and in every review someone is pointing out that this is wrong, resulting in people pointing out that this is done in the same way in other files).
This patch removes most of these inconsistencies including the editor language indicators, all the different missing/additional '-' characters, files that center the file name, missing trailing `===//` (mostly caused by clang-format breaking the line).
Reviewers: aprantl, espindola, jfb, shafik, JDevlieghere
Reviewed By: JDevlieghere
Subscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D73258
show more ...
|
Revision tags: llvmorg-11-init |
|
#
65fdb342 |
| 07-Jan-2020 |
Raphael Isemann <teemperor@gmail.com> |
[lldb][NFC] Use static_cast instead of reinterpret_cast where possible
Summary: There are a few places in LLDB where we do a `reinterpret_cast` for conversions that we could also do with `static_cas
[lldb][NFC] Use static_cast instead of reinterpret_cast where possible
Summary: There are a few places in LLDB where we do a `reinterpret_cast` for conversions that we could also do with `static_cast`. This patch moves all this code to `static_cast`.
Reviewers: shafik, JDevlieghere, labath
Reviewed By: labath
Subscribers: arphaman, usaxena95, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72161
show more ...
|
Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
#
926d2838 |
| 18-Nov-2019 |
Martin Storsjö <martin@martin.st> |
[lldb-server] Use LLDB_LOG_ERROR to consume Error<> even if logging is disabled
Differential Revision: https://reviews.llvm.org/D70386
|