| #
8d58fbd0 |
| 19-Feb-2021 |
David Spickett <[email protected]> |
[lldb][AArch64] Add memory-tagging qSupported feature
This feature "memory-tagging+" indicates that lldb-server supports memory tagging packets. (added in a later patch)
We check HWCAP2_MTE to deci
[lldb][AArch64] Add memory-tagging qSupported feature
This feature "memory-tagging+" indicates that lldb-server supports memory tagging packets. (added in a later patch)
We check HWCAP2_MTE to decide whether to enable this feature for Linux.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D97282
show more ...
|
| #
76e47d48 |
| 26-May-2021 |
Raphael Isemann <[email protected]> |
[lldb][NFC] Use C++ versions of the deprecated C standard library headers
The C headers are deprecated so as requested in D102845, this is replacing them all with their (not deprecated) C++ equivale
[lldb][NFC] Use C++ versions of the deprecated C standard library headers
The C headers are deprecated so as requested in D102845, this is replacing them all with their (not deprecated) C++ equivalent.
Reviewed By: shafik
Differential Revision: https://reviews.llvm.org/D103084
show more ...
|
| #
ca7824c2 |
| 24-Apr-2021 |
Michał Górny <[email protected]> |
[lldb] [gdb-remote] Report QPassSignals and qXfer via extensions API
Remove hardcoded platform list for QPassSignals, qXfer:auxv:read and qXfer:libraries-svr4:read and instead query the process plug
[lldb] [gdb-remote] Report QPassSignals and qXfer via extensions API
Remove hardcoded platform list for QPassSignals, qXfer:auxv:read and qXfer:libraries-svr4:read and instead query the process plugin via the GetSupportedExtensions() API.
Differential Revision: https://reviews.llvm.org/D101241
show more ...
|
| #
fd0af0cf |
| 09-Apr-2021 |
Michał Górny <[email protected]> |
[lldb] [Process/Linux] Report fork/vfork stop reason
Enable reporting fork/vfork events to the server when supported. At this moment, this is used only to test the server code, as real client does n
[lldb] [Process/Linux] Report fork/vfork stop reason
Enable reporting fork/vfork events to the server when supported. At this moment, this is used only to test the server code, as real client does not report fork-events and vfork-events as supported.
Differential Revision: https://reviews.llvm.org/D100208
show more ...
|
| #
c8d18cba |
| 13-Apr-2021 |
Michał Górny <[email protected]> |
Reland "[lldb] [Process] Watch for fork/vfork notifications" for Linux
Big thanks to Pavel Labath for figuring out my mistake.
Differential Revision: https://reviews.llvm.org/D98822
|
| #
121cff78 |
| 13-Apr-2021 |
Pavel Labath <[email protected]> |
Revert "[lldb] [Process] Watch for fork/vfork notifications" and associated followups
This commit has caused the following tests to be flaky: TestThreadSpecificBpPlusCondition.py TestExitDuringExpre
Revert "[lldb] [Process] Watch for fork/vfork notifications" and associated followups
This commit has caused the following tests to be flaky: TestThreadSpecificBpPlusCondition.py TestExitDuringExpression.py
The exact cause is not known yet, but since both tests deal with threads, my guess is it has something to do with the tracking of creation of new threads (which the commit touches upon).
This reverts the following commits: d01bff8cbdc98fb8751f7bf10af19b47ae5c445d, ba62ebc48e8c424ce3a78ba01acda679d536dd47, e761b6b4c58d4f7ae1073d925d7cb321d68ee93a, a345419ee03095c8cdfbe1c2728467c4da8fa0a4.
show more ...
|
| #
c9cf394f |
| 13-Apr-2021 |
Pavel Labath <[email protected]> |
[lldb] Replace NativeProcess delegate list with a single delegate
In all this time, we've never used more than one delegate. The logic to support multiple delegates is therefore untested, and become
[lldb] Replace NativeProcess delegate list with a single delegate
In all this time, we've never used more than one delegate. The logic to support multiple delegates is therefore untested, and becomes particularly unwieldy once we need to support multiple processes.
Just remove it.
show more ...
|
| #
a345419e |
| 12-Mar-2021 |
Michał Górny <[email protected]> |
[lldb] [Process] Watch for fork/vfork notifications
Watch for fork(2)/vfork(2) (also fork/vfork-style clone(2) on Linux) notifications and explicitly detach the forked child process, and add initial
[lldb] [Process] Watch for fork/vfork notifications
Watch for fork(2)/vfork(2) (also fork/vfork-style clone(2) on Linux) notifications and explicitly detach the forked child process, and add initial tests for these cases. The code covers FreeBSD, Linux and NetBSD process plugins. There is no new user-visible functionality provided -- this change lays foundations over subsequent work on fork support.
Differential Revision: https://reviews.llvm.org/D98822
show more ...
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
0b697561 |
| 09-Nov-2020 |
Walter Erquinigo <[email protected]> |
[trace][intel-pt] Implement trace start and trace stop
This implements the interactive trace start and stop methods.
This diff ended up being much larger than I anticipated because, by doing it, I
[trace][intel-pt] Implement trace start and trace stop
This implements the interactive trace start and stop methods.
This diff ended up being much larger than I anticipated because, by doing it, I found that I had implemented in the beginning many things in a non optimal way. In any case, the code is much better now.
There's a lot of boilerplate code due to the gdb-remote protocol, but the main changes are:
- New tracing packets: jLLDBTraceStop, jLLDBTraceStart, jLLDBTraceGetBinaryData. The gdb-remote packet definitions are quite comprehensive. - Implementation of the "process trace start|stop" and "thread trace start|stop" commands. - Implementaiton of an API in Trace.h to interact with live traces. - Created an IntelPTDecoder for live threads, that use the debugger's stop id as checkpoint for its internal cache. - Added a functionality to stop the process in case "process tracing" is enabled and a new thread can't traced. - Added tests
I have some ideas to unify the code paths for post mortem and live threads, but I'll do that in another diff.
Differential Revision: https://reviews.llvm.org/D91679
show more ...
|
| #
8244fc50 |
| 28-Jan-2021 |
Michał Górny <[email protected]> |
[lldb] [Process/FreeBSDRemote] Introduce mips64 support
Introduce mips64 support to match the legacy FreeBSD plugin. Similarly to the legacy plugin, the code does not support FPU registers at the mo
[lldb] [Process/FreeBSDRemote] Introduce mips64 support
Introduce mips64 support to match the legacy FreeBSD plugin. Similarly to the legacy plugin, the code does not support FPU registers at the moment. The support for them will be submitted separately as it requires changes to the register context shared by both plugins.
This also includes software single-stepping support that is moved from the Linux plugin into a common Utility class. The FreeBSD code also starts explicitly ignoring EINVAL from PT_CLEARSTEP since this is easier to implement than checking whether hardware single-stepping were used.
Differential Revision: https://reviews.llvm.org/D95802
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 <[email protected]> |
[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 <[email protected]> |
[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 ...
|
| #
2c4226f8 |
| 09-Oct-2020 |
Pavel Labath <[email protected]> |
[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 ...
|
|
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 |
|
| #
64ec505d |
| 15-Jun-2020 |
Jonas Devlieghere <[email protected]> |
[lldb] Rename Master/Slave to Primary/Secondary (NFC)
|
| #
587f81f5 |
| 20-May-2020 |
Raphael Isemann <[email protected]> |
Revert "[lldb-server] Reset stop reason of all threads when resuming"
This reverts commit 56de738d18e11c86169f0248b97b2854c37e35ce.
This broke the aarch64 bot. Reverting on behalf of jarin.
|
| #
56de738d |
| 20-May-2020 |
Jaroslav Sevcik <[email protected]> |
[lldb-server] Reset stop reason of all threads when resuming
Summary: This patch makes the stop reason reset logic similar to MacOS' debugserver, where exceptions are reset for all threads when resu
[lldb-server] Reset stop reason of all threads when resuming
Summary: This patch makes the stop reason reset logic similar to MacOS' debugserver, where exceptions are reset for all threads when resuming process for stepping or continuing (see [[ https://github.com/llvm/llvm-project/blob/96f3ea0d21b48ca088355db10d4d1a2e9bc9f884/lldb/tools/debugserver/source/MacOSX/MachThreadList.cpp#L433 | MachThreadList::ProcessWillResume ]] and [[ https://github.com/llvm/llvm-project/blob/96f3ea0d21b48ca088355db10d4d1a2e9bc9f884/lldb/tools/debugserver/source/MacOSX/MachThread.cpp#L363 | MachThread::ThreadWillResume ]]).
Resetting stop reasons on resume fixes problems where LLDB spuriously reports SIGTRAP signal stop reason for deleted breakpoints (both internal and public) and where LLDB stops on an internal breakpoint while stepping over while a breakpoint is hit in another thread. See [[ https://bugs.llvm.org/show_bug.cgi?id=45642 | PR45642 ]] for details.
Reviewed By: jingham, labath
Differential Revision: https://reviews.llvm.org/D79308
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1 |
|
| #
80814287 |
| 24-Jan-2020 |
Raphael Isemann <[email protected]> |
[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, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3 |
|
| #
a8f3ae7c |
| 14-Aug-2019 |
Jonas Devlieghere <[email protected]> |
[LLDB] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of
[LLDB] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of (hopefully) all the llvm::make_unique instances across the monorepo.
Differential revision: https://reviews.llvm.org/D66259
llvm-svn: 368933
show more ...
|
|
Revision tags: llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1 |
|
| #
ee74c9e5 |
| 25-Jul-2019 |
Pavel Labath <[email protected]> |
LLGS: fix tracking execve on linux
Summary: Due to a logic error, lldb-server ended up asserting/crashing every time the debugged process attempted an execve(). This fixes the error, and extends Tes
LLGS: fix tracking execve on linux
Summary: Due to a logic error, lldb-server ended up asserting/crashing every time the debugged process attempted an execve(). This fixes the error, and extends TestExec to work on other platforms too. The "extension" consists of avoiding non-standard posix_spawn extensions and using the classic execve() call, which should be available on any platform that actually supports re-execing. I change the test decorator from @skipUnlessDarwin to @skipIfWindows.
Reviewers: clayborg, jasonmolenda
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D65207
llvm-svn: 366985
show more ...
|
| #
70795c1e |
| 23-Jul-2019 |
Antonio Afonso <[email protected]> |
Revert "Revert "Add ReadCStringFromMemory for faster string reads""
This reverts commit 9c10b620c0619611dfe062216459431955ac4801.
llvm-svn: 366848
|
| #
05e32bad |
| 23-Jul-2019 |
Antonio Afonso <[email protected]> |
Revert "Revert "Implement xfer:libraries-svr4:read packet""
This reverts commit 08c38f77c5fb4d3735ec215032fed8ee6730b3db.
llvm-svn: 366847
|
|
Revision tags: llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4 |
|
| #
08c38f77 |
| 01-Jul-2019 |
Pavel Labath <[email protected]> |
Revert "Implement xfer:libraries-svr4:read packet"
D62502, together with D62503 have broken the builds which have XML support enabled. Reverting D62503 (r364355) fixed that, but has broken has left
Revert "Implement xfer:libraries-svr4:read packet"
D62502, together with D62503 have broken the builds which have XML support enabled. Reverting D62503 (r364355) fixed that, but has broken has left some of the tests introduced by D62502 broken more or less nondeternimistically (it depended on whether the system happens to place the library list near unreadable pages of memory). I attempted to make a partial fix for this in r364748, but Jan Kratochvil pointed out that this reintroduces the problem which reverting D62503 was trying to solve.
So instead, I back out the whole thing so we can get back to a clean slate that works for everyone. We can figure out a way forward from there.
This reverts r364748, r363772 and r363707.
llvm-svn: 364751
show more ...
|
|
Revision tags: llvmorg-8.0.1-rc3 |
|
| #
9c10b620 |
| 25-Jun-2019 |
Antonio Afonso <[email protected]> |
Revert "Add ReadCStringFromMemory for faster string reads"
This reverts commit a7335393f50246b59db450dc6005f7c8f29e73a6.
It seems this is breaking a bunch of tests (https://reviews.llvm.org/D62503#
Revert "Add ReadCStringFromMemory for faster string reads"
This reverts commit a7335393f50246b59db450dc6005f7c8f29e73a6.
It seems this is breaking a bunch of tests (https://reviews.llvm.org/D62503#1549874) so reverting until I find the time to repro and fix.
llvm-svn: 364355
show more ...
|
| #
a7335393 |
| 18-Jun-2019 |
Antonio Afonso <[email protected]> |
Add ReadCStringFromMemory for faster string reads
Summary: This is the fifth patch to improve module loading in a series that started here (where I explain the motivation and solution): D62499
Read
Add ReadCStringFromMemory for faster string reads
Summary: This is the fifth patch to improve module loading in a series that started here (where I explain the motivation and solution): D62499
Reading strings with ReadMemory is really slow when reading the path of the shared library. This is because we don't know the length of the path so use PATH_MAX (4096) and these strings are actually super close to the boundary of an unreadable page. So even though we use process_vm_readv it will usually fail because the read size spans to the unreadable page and we then default to read the string word by word with ptrace.
This new function is very similar to another ReadCStringFromMemory that already exists in lldb that makes sure it never reads cross page boundaries and checks if we already read the entire string by finding '\0'.
I was able to reduce the GetLoadedSharedLibraries call from 30ms to 4ms (or something of that order).
Reviewers: clayborg, xiaobai, labath
Reviewed By: labath
Subscribers: emaste, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D62503
llvm-svn: 363750
show more ...
|
| #
fda83c9b |
| 18-Jun-2019 |
Antonio Afonso <[email protected]> |
Implement xfer:libraries-svr4:read packet
Summary: This is the fourth patch to improve module loading in a series that started here (where I explain the motivation and solution): D62499
Implement t
Implement xfer:libraries-svr4:read packet
Summary: This is the fourth patch to improve module loading in a series that started here (where I explain the motivation and solution): D62499
Implement the `xfer:libraries-svr4` packet by adding a new function that generates the list and then in Handle_xfer I generate the XML for it. The XML is really simple so I'm just using string concatenation because I believe it's more readable than having to deal with a DOM api.
Reviewers: clayborg, xiaobai, labath
Reviewed By: labath
Subscribers: emaste, mgorny, srhines, krytarowski, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D62502
llvm-svn: 363707
show more ...
|