Revision tags: llvmorg-21-init |
|
#
22561cfb |
| 22-Jan-2025 |
Pavel Labath <pavel@labath.sk> |
Revert "[lldb] Implement basic support for reverse-continue" (#123906)
Reverts llvm/llvm-project#112079 due to failures on the arm bot.
|
#
b7b9ccf4 |
| 22-Jan-2025 |
Robert O'Callahan <rocallahan@google.com> |
[lldb] Implement basic support for reverse-continue (#112079)
This commit adds support for a `SBProcess::ContinueInDirection()` API. A user-accessible command for this will follow in a later commit.
[lldb] Implement basic support for reverse-continue (#112079)
This commit adds support for a `SBProcess::ContinueInDirection()` API. A user-accessible command for this will follow in a later commit.
This feature depends on a gdbserver implementation (e.g. `rr`) providing support for the `bc` and `bs` packets. `lldb-server` does not support those packets, and there is no plan to change that. For testing purposes, this commit adds a Python implementation of *very limited* record-and-reverse-execute functionality, implemented as a proxy between lldb and lldb-server in `lldbreverse.py`. This should not (and in practice cannot) be used for anything except testing.
The tests here are quite minimal but we test that simple breakpoints and watchpoints work as expected during reverse execution, and that conditional breakpoints and watchpoints work when the condition calls a function that must be executed in the forward direction.
show more ...
|
Revision tags: 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 |
|
#
857700ff |
| 08-Jul-2024 |
Kendal Harland <3987220+kendalharland@users.noreply.github.com> |
[lldb][test] Fix type error when calling random.randrange with 'float' arg (#97328)
This test only runs on Windows and fails because we're passing a literal
of the wrong type to random.randrange.
[lldb][test] Fix type error when calling random.randrange with 'float' arg (#97328)
This test only runs on Windows and fails because we're passing a literal
of the wrong type to random.randrange.
Co-authored-by: kendal <kendal@thebrowser.company>
show more ...
|
#
781ba3c6 |
| 01-Jul-2024 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
[LLDB] Fix TestGdbRemoteConnection.py on Windows
This fixes TestGdbRemoteConnection.py failing after PR #91570 on AArch64 Windows LLDB buildbot.
https://lab.llvm.org/buildbot/#/builders/141/builds/
[LLDB] Fix TestGdbRemoteConnection.py on Windows
This fixes TestGdbRemoteConnection.py failing after PR #91570 on AArch64 Windows LLDB buildbot.
https://lab.llvm.org/buildbot/#/builders/141/builds/376
show more ...
|
#
a52be0cc |
| 28-Jun-2024 |
Santhosh Kumar Ellendula <quic_sellendu@quicinc.com> |
[lldb-dap] Added "port" property to vscode "attach" command. (#91570)
Adding a "port" property to the VsCode "attach" command likely extends
the functionality of the debugger configuration to allow
[lldb-dap] Added "port" property to vscode "attach" command. (#91570)
Adding a "port" property to the VsCode "attach" command likely extends
the functionality of the debugger configuration to allow attaching to a
process using PID or PORT number.
Currently, the "Attach" configuration lets the user specify a pid. We
tell the user to use the attachCommands property to run "gdb-remote ".
Followed the below conditions for "attach" command with "port" and "pid"
We should add a "port" property. If port is specified and pid is not,
use that port to attach. If both port and pid are specified, return an
error saying that the user can't specify both pid and port.
Ex - launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "lldb-dap Debug",
"type": "lldb-dap",
"request": "attach",
"gdb-remote-port":1234,
"program": "${workspaceFolder}/a.out",
"args": [],
"stopOnEntry": false,
"cwd": "${workspaceFolder}",
"env": [],
}
]
}
---------
Co-authored-by: Santhosh Kumar Ellendula <sellendu@hu-sellendu-hyd.qualcomm.com>
Co-authored-by: Santhosh Kumar Ellendula <sellendu@hu-sellendu-lv.qualcomm.com>
show more ...
|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6 |
|
#
ba66dfb1 |
| 09-May-2024 |
Dmitry Vasilyev <dvassiliev@accesssoftek.com> |
[lldb] Fixed SyntaxWarning: invalid escape sequence \[ \d \s (#91146)
Reproduced with Python 3.12.3
|
Revision tags: 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 |
|
#
e634c2f7 |
| 11-Aug-2023 |
Alex Langford <alangford@apple.com> |
[lldb] Remove use of __future__ in python
These were useful primarily for the Python 2 to 3 transition. Python 2 is no longer supported so these are no longer necessary.
Differential Revision: http
[lldb] Remove use of __future__ in python
These were useful primarily for the Python 2 to 3 transition. Python 2 is no longer supported so these are no longer necessary.
Differential Revision: https://reviews.llvm.org/D157759
show more ...
|
Revision tags: llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5 |
|
#
2238dcc3 |
| 25-May-2023 |
Jonas Devlieghere <jonas@devlieghere.com> |
[NFC][Py Reformat] Reformat python files in lldb
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black` (23.1.0).
If you end up having problem
[NFC][Py Reformat] Reformat python files in lldb
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black` (23.1.0).
If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run `git checkout --ours <yourfile>` and then reformat it with black.
RFC: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style
Differential revision: https://reviews.llvm.org/D151460
show more ...
|
Revision tags: 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, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2 |
|
#
56f9cfe3 |
| 05-Aug-2022 |
Dave Lee <davelee.com@gmail.com> |
[lldb] Remove uses of six module (NFC)
With lldb (& llvm) requiring Python 3.6+, use of the `six` module can be removed.
Differential Revision: https://reviews.llvm.org/D131304
|
Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init |
|
#
1903f358 |
| 29-Jun-2022 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [llgs] Send process output asynchronously in non-stop mode
Introduce a new %Stdio notification category and use it to send process output asynchronously when running in non-stop mode. This i
[lldb] [llgs] Send process output asynchronously in non-stop mode
Introduce a new %Stdio notification category and use it to send process output asynchronously when running in non-stop mode. This is an LLDB extension since GDB does not use the 'O' packet for process output, just for replies to 'qRcmd' packets.
Using the async notification mechanism implies that only the first output packet is sent immediately to the client. The client needs to request subsequent notifications (if any) using the new vStdio packet (that works pretty much like vStopped for the Stop notification queue).
The packet handler in lldb-server tests is updated to handle the async stdio packets in addition to the regular O packets. However, due to the implications noted above, it can only handle the first output packet sent by the server. Subsequent packets need to be explicitly requested via vStdio.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128849
show more ...
|
Revision tags: llvmorg-14.0.6 |
|
#
75757c86 |
| 18-Jun-2022 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [llgs] Support multiprocess in qfThreadInfo
Update the `qfThreadInfo` handler to report threads of all debugged processes and include PIDs when in multiprocess mode.
Sponsored by: The FreeBS
[lldb] [llgs] Support multiprocess in qfThreadInfo
Update the `qfThreadInfo` handler to report threads of all debugged processes and include PIDs when in multiprocess mode.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128152
show more ...
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2 |
|
#
bc04d240 |
| 12-Apr-2022 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [llgs] Implement non-stop style stop notification packets
Implement the support for %Stop asynchronous notification packet format in LLGS. This does not implement full support for non-stop m
[lldb] [llgs] Implement non-stop style stop notification packets
Implement the support for %Stop asynchronous notification packet format in LLGS. This does not implement full support for non-stop mode for threaded programs -- process plugins continue stopping all threads on every event. However, it will be used to implement asynchronous events in multiprocess debugging.
The non-stop protocol is enabled using QNonStop packet. When it is enabled, the server uses notification protocol instead of regular stop replies. Since all threads are always stopped, notifications are always generated for all active threads and copied into stop notification queue.
If the queue was empty, the initial asynchronous %Stop notification is sent to the client immediately. The client needs to (eventually) acknowledge the notification by sending the vStopped packet, in which case it is popped from the queue and the stop reason for the next thread is reported. This continues until notification queue is empty again, in which case an OK reply is sent.
Asychronous notifications are also used for vAttach results and program exits. The `?` packet uses a hybrid approach -- it returns the first stop reason synchronously, and exposes the stop reasons for remaining threads via vStopped queue.
The change includes a test case for a program generating a segfault on 3 threads. The server is expected to generate a stop notification for the segfaulting thread, along with the notifications for the other running threads (with "no stop reason"). This verifies that the stop reasons are correctly reported for all threads, and that notification queue works.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D125575
show more ...
|
Revision tags: llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
#
ff94f602 |
| 13-Sep-2021 |
Jan Kratochvil <jan.kratochvil@redhat.com> |
[lldb] [testsuite] Fix false failures on "\n" regex match
Regex is matching a binary so it needs `re.DOTALL`. vFile:fstat packet data ATTACHMENT is not hex-encoded but it is only escaped.
It is dif
[lldb] [testsuite] Fix false failures on "\n" regex match
Regex is matching a binary so it needs `re.DOTALL`. vFile:fstat packet data ATTACHMENT is not hex-encoded but it is only escaped.
It is difficult to reproduce, it came from buildbot: https://lab.llvm.org/staging/#/builders/16/builds/10597
******************** TEST 'lldb-api :: tools/lldb-server/TestGdbRemotePlatformFile.py' FAILED ******************** FAIL: test_platform_file_fstat_llgs (TestGdbRemotePlatformFile.TestGdbRemotePlatformFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py", line 52, in test_method return attrvalue(self) File "lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py", line 259, in test_platform_file_fstat context = self.expect_gdbremote_sequence() File "lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py", line 621, in expect_gdbremote_sequence return expect_lldb_gdbserver_replay( File "lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 198, in expect_lldb_gdbserver_replay context = sequence_entry.assert_match( File "lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 479, in assert_match return self._assert_regex_match(asserter, actual_packet, context) File "lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 446, in _assert_regex_match asserter.fail( AssertionError: regex '^\$F([0-9a-fA-F]+);(.*)#[0-9a-fA-F]{2}$' failed to match against content '$F40;^@^@^@ ^@ ^C<8d>^@^@<81><80>^@^@^@^A^@^@^CX^@^@^CX^@^@^@^@^@^@^@^@^@^@^@^W^@^@^@^@^@^@^P^@^@^@^@^@^@^@^@ a=XXa=XXa=XX#6b'
show more ...
|
Revision tags: llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
#
ded66049 |
| 13-Apr-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb/test] Remove the "expect_captures" feature of lldb-server tests
This functionality is used exactly once, and it is trivial to implement it differently (capture into two distinct variables, and
[lldb/test] Remove the "expect_captures" feature of lldb-server tests
This functionality is used exactly once, and it is trivial to implement it differently (capture into two distinct variables, and compare for equality afterwards).
show more ...
|
#
872b1da6 |
| 13-Apr-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb/test] s/add_no_ack_remote_stream/do_handshake
These two functions are doing the same thing, only one of them is sending the packets immediately and the other "queues" them to be sent later. Th
[lldb/test] s/add_no_ack_remote_stream/do_handshake
These two functions are doing the same thing, only one of them is sending the packets immediately and the other "queues" them to be sent later. The first one is better as in case of errors, the backtrace will point straight to the place that caused them.
Modify the first method to avoid duplication, and ten standardize on it.
show more ...
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2 |
|
#
3ca7b2d0 |
| 04-Feb-2021 |
Pavel Labath <pavel@labath.sk> |
Reapply "[lldb/test] Automatically find debug servers to test"
This reapplies 7df4eaaa93/D96202, which was reverted due to issues on windows. These were caused by problems in the computation of the
Reapply "[lldb/test] Automatically find debug servers to test"
This reapplies 7df4eaaa93/D96202, which was reverted due to issues on windows. These were caused by problems in the computation of the liblldb directory, which was fixed by D96779.
The original commit message was: Our test configuration logic assumes that the tests can be run either with debugserver or with lldb-server. This is not entirely correct, since lldb server has two "personalities" (platform server and debug server) and debugserver is only a replacement for the latter.
A consequence of this is that it's not possible to test the platform behavior of lldb-server on macos, as it is not possible to get a hold of the lldb-server binary.
One solution to that would be to duplicate the server configuration logic to be able to specify both executables. However, that seems excessively redundant.
A well-behaved lldb should be able to find the debug server on its own, and testing lldb with a different (lldb-|debug)server does not seem very useful (even in the out-of-tree debugserver setup, we copy the server into the build tree to make it appear "real").
Therefore, this patch deletes the configuration altogether and changes the low-level server retrieval functions to be able to both lldb-server and debugserver paths. They do this by consulting the "support executable" directory of the lldb under test.
Differential Revision: https://reviews.llvm.org/D96202
show more ...
|
#
3cad308c |
| 11-Feb-2021 |
Pavel Labath <pavel@labath.sk> |
Revert "[lldb/test] Automatically find debug servers to test"
The commit 7df4eaaa937332c0617aa665080533966e2c98a0 appears to break the windows bot. Revert while I investigate.
|
#
7df4eaaa |
| 04-Feb-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb/test] Automatically find debug servers to test
Our test configuration logic assumes that the tests can be run either with debugserver or with lldb-server. This is not entirely correct, since l
[lldb/test] Automatically find debug servers to test
Our test configuration logic assumes that the tests can be run either with debugserver or with lldb-server. This is not entirely correct, since lldb server has two "personalities" (platform server and debug server) and debugserver is only a replacement for the latter.
A consequence of this is that it's not possible to test the platform behavior of lldb-server on macos, as it is not possible to get a hold of the lldb-server binary.
One solution to that would be to duplicate the server configuration logic to be able to specify both executables. However, that seems excessively redundant.
A well-behaved lldb should be able to find the debug server on its own, and testing lldb with a different (lldb-|debug)server does not seem very useful (even in the out-of-tree debugserver setup, we copy the server into the build tree to make it appear "real").
Therefore, this patch deletes the configuration altogether and changes the low-level server retrieval functions to be able to both lldb-server and debugserver paths. They do this by consulting the "support executable" directory of the lldb under test.
Differential Revision: https://reviews.llvm.org/D96202
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 |
|
#
599fdfc5 |
| 20-Jan-2021 |
Pavel Labath <pavel@labath.sk> |
Revert "[lldb] Re-enable TestPlatformProcessConnect on macos"
This reverts commit 079e664661770a78e30c0d27a12d50047f1b1ea8. It needs more work.
|
#
079e6646 |
| 19-Jan-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb] Re-enable TestPlatformProcessConnect on macos
The test couldn't find lldb-server as it's path was being overridden by LLDB_DEBUGSERVER_PATH environment variable (pointing to debugserver). Thi
[lldb] Re-enable TestPlatformProcessConnect on macos
The test couldn't find lldb-server as it's path was being overridden by LLDB_DEBUGSERVER_PATH environment variable (pointing to debugserver). This test should always use lldb-server, as it tests its platform capabilities.
There's no need for the environment override, as lldb-server tests should test the executable they just built, so I just remote the override capability.
show more ...
|
Revision tags: llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
#
a2f4f7da |
| 04-Dec-2020 |
Pavel Labath <pavel@labath.sk> |
[lldb/test] Refactor socket_packet_pump
Now that the class does not use a thread, the name is no longer appropriate. Rename the class to "Server" and make it a long-lived object (instead of recreati
[lldb/test] Refactor socket_packet_pump
Now that the class does not use a thread, the name is no longer appropriate. Rename the class to "Server" and make it a long-lived object (instead of recreating it for every expect_gdbremote_sequence call). The idea is to make this class a wrapper for all communication with debug/lldb-server. This will enable some additional cleanups as we had some duplication between socket_pump non-pump code paths.
Also squeeze in some small improvements: - use python-level timeouts on sockets instead of the manual select calls - use byte arrays instead of strings when working with raw packets
show more ...
|
#
b6e04ac5 |
| 30-Nov-2020 |
Pavel Labath <pavel@labath.sk> |
[lldb/test] Avoid the socket "pump" thread
A separate thread is not necessary, as we can do its work on the main thread, while waiting for the packet to arrive. This makes the code easier to underst
[lldb/test] Avoid the socket "pump" thread
A separate thread is not necessary, as we can do its work on the main thread, while waiting for the packet to arrive. This makes the code easier to understand and debug (other simplifications are possible too, but I'll leave that for separate patches). The new implementation also avoids busy waiting.
show more ...
|
Revision tags: llvmorg-11.0.1-rc1, 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 |
|
#
c888694a |
| 07-Aug-2020 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
[LLDB] Fix timeout value on expect_gdbremote_sequence
D83904 seems to have changed timeout value on expect_gdbremote_sequence which was 120 previously. This seems to be causing intermittent failures
[LLDB] Fix timeout value on expect_gdbremote_sequence
D83904 seems to have changed timeout value on expect_gdbremote_sequence which was 120 previously. This seems to be causing intermittent failures on lldb-aarch64-ubuntu buildbot.
This patch fixes the timeout value to see the impact on test suite.
Example: http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/7401/steps/test/logs/stdio
Differential Revision: https://reviews.llvm.org/D85514
show more ...
|
#
99298c7f |
| 06-Aug-2020 |
Fred Riss <friss@apple.com> |
[lldb/testsuite] Change get_debugserver_exe to support Rosetta
In order to be able to run the debugserver tests against the Rosetta debugserver, detect the Rosetta run configuration and return the s
[lldb/testsuite] Change get_debugserver_exe to support Rosetta
In order to be able to run the debugserver tests against the Rosetta debugserver, detect the Rosetta run configuration and return the system Rosetta debugserver.
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, 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, 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 |
|
#
2a39024a |
| 14-Aug-2019 |
Aaron Smith <aaron.smith@microsoft.com> |
Update Python tests for lldb-server on Windows
Summary: Thanks to Hui Huang and reviewers for all the help with this patch!
Reviewers: labath, jfb, clayborg
Reviewed By: labath
Subscribers: Hui,
Update Python tests for lldb-server on Windows
Summary: Thanks to Hui Huang and reviewers for all the help with this patch!
Reviewers: labath, jfb, clayborg
Reviewed By: labath
Subscribers: Hui, clayborg, dexonsmith, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D61687
llvm-svn: 368776
show more ...
|