|
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 |
|
| #
1b4b12a3 |
| 23-Jul-2022 |
Nico Weber <[email protected]> |
Revert "[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute." and follow-ups
This reverts commit 9429b67b8e300e638d7828bbcb95585f85c4df4d.
It broke
Revert "[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute." and follow-ups
This reverts commit 9429b67b8e300e638d7828bbcb95585f85c4df4d.
It broke the build on Windows, see comments on https://reviews.llvm.org/D130309
It also reverts these follow-ups:
Revert "Fix buildbot breakage after https://reviews.llvm.org/D130309." This reverts commit f959d815f4637890ebbacca379f1c38ab47e4e14.
Revert "Fix buildbot breakage after https://reviews.llvm.org/D130309." This reverts commit 0bbce7a4c2d2bff622bdadd4323f93f5d90e6d24.
Revert "Cache the value for absolute path in FileSpec." This reverts commit dabe877248b85b34878e75d5510339325ee087d0.
show more ...
|
| #
9429b67b |
| 21-Jul-2022 |
Greg Clayton <[email protected]> |
[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute.
The FileSpect APIs allow users to modify instance variables directly by getting a non const ref
[NFC] Improve FileSpec internal APIs and usage in preparation for adding caching of resolved/absolute.
The FileSpect APIs allow users to modify instance variables directly by getting a non const reference to the directory and filename instance variables. This makes it impossibly to control all of the times the FileSpec object is modified so we can clear the cache. This patch modifies the APIs of FileSpec so no one can modify the directory or filename directly by adding set accessors and by removing the get accessors that are non const.
Many clients were using FileSpec::GetCString(...) which returned a unique C string from a ConstString'ified version of the result of GetPath() which returned a std::string. This caused many locations to use this convenient function incorrectly and could cause many strings to be added to the constant string pool that didn't need to. Most clients were converted to using FileSpec::GetPath().c_str() when possible. Other clients were modified to use the newly renamed version of this function which returns an actualy ConstString: ConstString FileSpec::GetPathAsConstString(bool denormalize = true) const;
This avoids the issue where people were getting an already uniqued "const char *" that came from a ConstString only to put the "const char *" back into a "ConstString" object. By returning the ConstString instead of a "const char *" clients can be more efficient with the result.
The patch: - Removes the non const GetDirectory() and GetFilename() get accessors - Adds set accessors to replace the above functions: SetDirectory() and SetFilename(). - Adds ClearDirectory() and ClearFilename() to replace usage of the FileSpec::GetDirectory().Clear()/FileSpec::GetFilename().Clear() call sites - Fixed all incorrect usage of FileSpec::GetCString() to use FileSpec::GetPath().c_str() where appropriate, and updated other call sites that wanted a ConstString to use the newly returned ConstString appropriately and efficiently.
Differential Revision: https://reviews.llvm.org/D130309
show more ...
|
| #
09531ede |
| 30-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Improve stdio forwarding in multiprocess+nonstop
Enable stdio forwarding when nonstop mode is enabled, and disable it once it is disabled. This makes it possible to cleanly handle std
[lldb] [llgs] Improve stdio forwarding in multiprocess+nonstop
Enable stdio forwarding when nonstop mode is enabled, and disable it once it is disabled. This makes it possible to cleanly handle stdio forwarding while running multiple processes in non-stop mode.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128932
show more ...
|
| #
c732afa2 |
| 30-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Fix disabling non-stop mode
Stop all processes and clear notification queues when disabling non-stop mode. Ensure that no stop notifications are sent for processes stopped due to the
[lldb] [llgs] Fix disabling non-stop mode
Stop all processes and clear notification queues when disabling non-stop mode. Ensure that no stop notifications are sent for processes stopped due to the mode switch.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128893
show more ...
|
| #
ab9f1e88 |
| 30-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Fix `?` packet response for running threads
Fix the response to `?` packet for threads that are running at the time (in non-stop mode). The previous code would wrongly send or queue a
[lldb] [llgs] Fix `?` packet response for running threads
Fix the response to `?` packet for threads that are running at the time (in non-stop mode). The previous code would wrongly send or queue an empty response for them.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128879
show more ...
|
| #
1903f358 |
| 29-Jun-2022 |
Michał Górny <[email protected]> |
[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 ...
|
| #
eb43e43b |
| 28-Jun-2022 |
Michał Górny <[email protected]> |
Reland "[lldb] [llgs] Fix multi-resume bugs with nonstop mode"
Improve handling of multiple successive continue packets in non-stop mode. More specifically:
1. Explicitly send error response (inst
Reland "[lldb] [llgs] Fix multi-resume bugs with nonstop mode"
Improve handling of multiple successive continue packets in non-stop mode. More specifically:
1. Explicitly send error response (instead of crashing on assertion) if the user attempts to resume the same process twice. Since we do not support thread-level non-stop mode, one needs to always stop the process explicitly before resuming another thread set.
2. Actually stop the process if "vCont;t" is delivered to a running process. Similarly, we only support stopping all the running threads simultaneously (via -1) and return an error in any other case.
With this patch, running multiple processes simultaneously is still unsupported. The patch also employs a hack to avoid enabling stdio forwarding on "vCont;t" packet. Both of these issues are addressed by followup patches.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128710
show more ...
|
| #
7a2b09b4 |
| 15-Jul-2022 |
Michał Górny <[email protected]> |
Revert "[lldb] [llgs] Fix multi-resume bugs with nonstop mode"
This reverts commit f8605da8758fbae16410e4ed5493a39429fd73ec. This is causing buildbot failures and now I see that I have not updated t
Revert "[lldb] [llgs] Fix multi-resume bugs with nonstop mode"
This reverts commit f8605da8758fbae16410e4ed5493a39429fd73ec. This is causing buildbot failures and now I see that I have not updated the tests to use "stop" instead of "trap".
show more ...
|
| #
f8605da8 |
| 28-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Fix multi-resume bugs with nonstop mode
Improve handling of multiple successive continue packets in non-stop mode. More specifically:
1. Explicitly send error response (instead of cr
[lldb] [llgs] Fix multi-resume bugs with nonstop mode
Improve handling of multiple successive continue packets in non-stop mode. More specifically:
1. Explicitly send error response (instead of crashing on assertion) if the user attempts to resume the same process twice. Since we do not support thread-level non-stop mode, one needs to always stop the process explicitly before resuming another thread set.
2. Actually stop the process if "vCont;t" is delivered to a running process. Similarly, we only support stopping all the running threads simultaneously (via -1) and return an error in any other case.
With this patch, running multiple processes simultaneously is still unsupported. The patch also employs a hack to avoid enabling stdio forwarding on "vCont;t" packet. Both of these issues are addressed by followup patches.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128710
show more ...
|
| #
06b3f27f |
| 30-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Remove not-really-used m_inferior_prev_state
Remove m_inferior_prev_state that's not suitable for multiprocess debugging and that does not seem to be really used at all.
The only use
[lldb] [llgs] Remove not-really-used m_inferior_prev_state
Remove m_inferior_prev_state that's not suitable for multiprocess debugging and that does not seem to be really used at all.
The only use of the variable right now is to "prevent" sending the stop reason after attach/launch. However, this code is never actually run since none of the process plugins actually use eStateLaunching or eStateAttaching. Through adding an assert, I've confirmed that it's never hit in any of the LLDB tests or while attaching/launching debugged process via lldb-server and via lldb CLI.
Differential Revision: https://reviews.llvm.org/D128878 Sponsored by: The FreeBSD Foundation
show more ...
|
| #
355c7916 |
| 13-Jul-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Convert m_debugged_processes into a map of structs
Convert the m_debugged_processes map from NativeProcessProtocol pointers to structs, and combine the additional set(s) holding the ad
[lldb] [llgs] Convert m_debugged_processes into a map of structs
Convert the m_debugged_processes map from NativeProcessProtocol pointers to structs, and combine the additional set(s) holding the additional process properties into a flag field inside this struct. This is desirable since there are more properties to come and having a single structure with all information should be cleaner and more efficient than using multiple sets for that.
Suggested by Pavel Labath in D128893.
Differential Revision: https://reviews.llvm.org/D129652
show more ...
|
| #
261d0033 |
| 27-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Fix premature server exit if multiprocess+nonstop
Fix lldb-server in the non-stop + multiprocess mode to exit on vStopped only if all processes have exited, rather than when the first
[lldb] [llgs] Fix premature server exit if multiprocess+nonstop
Fix lldb-server in the non-stop + multiprocess mode to exit on vStopped only if all processes have exited, rather than when the first one exits.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128639
show more ...
|
| #
e095cddb |
| 28-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] Add a NativeProcessProtocol::Threads() iterable
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128698
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5 |
|
| #
b4f2d7cd |
| 03-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Support "t" vCont action
Implement support for the "t" action that is used to stop a thread. Normally this action is used only in non-stop mode. However, there's no technical reason w
[lldb] [llgs] Support "t" vCont action
Implement support for the "t" action that is used to stop a thread. Normally this action is used only in non-stop mode. However, there's no technical reason why it couldn't be also used in all-stop mode, e.g. to express "resume all threads except ..." (`t:...;c`).
While at it, add a more complete test for vCont correctly resuming a subset of program's threads.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D126983
show more ...
|
| #
1452e2e5 |
| 25-Jun-2022 |
Michał Górny <[email protected]> |
Reland "[lldb] [llgs] Support multiprocess in qfThreadInfo"
Now preserving the non-standard behavior of returning "OK" response when there is no debugged process.
Sponsored by: The FreeBSD Foundati
Reland "[lldb] [llgs] Support multiprocess in qfThreadInfo"
Now preserving the non-standard behavior of returning "OK" response when there is no debugged process.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128152
show more ...
|
| #
f609b54e |
| 25-Jun-2022 |
Michał Górny <[email protected]> |
Revert "[lldb] [llgs] Support multiprocess in qfThreadInfo"
This reverts part of commit 75757c86c695a6b4695458343637b3c4fe86def6. It broke the following test:
commands/target/auto-install-main-ex
Revert "[lldb] [llgs] Support multiprocess in qfThreadInfo"
This reverts part of commit 75757c86c695a6b4695458343637b3c4fe86def6. It broke the following test:
commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
I need more time to figure it out, so I'm reverting the code changes and marking the tests depending on them xfail.
show more ...
|
| #
4b485fc0 |
| 22-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Introduce an AppendThreadIDToResponse() helper
Introduce a helper function to append GDB Remote Serial Protocol "thread IDs", with optional PID in multiprocess mode.
Sponsored by: The
[lldb] [llgs] Introduce an AppendThreadIDToResponse() helper
Introduce a helper function to append GDB Remote Serial Protocol "thread IDs", with optional PID in multiprocess mode.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128324
show more ...
|
| #
e827e518 |
| 20-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Implement the 'T' packet
Implement the 'T' packet that is used to verify whether the specified thread belongs to the debugged processes.
Sponsored by: The FreeBSD Foundation Different
[lldb] [llgs] Implement the 'T' packet
Implement the 'T' packet that is used to verify whether the specified thread belongs to the debugged processes.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128170
show more ...
|
| #
630da0e3 |
| 20-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Include PID in QC response in multiprocess mode
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128156
|
| #
75757c86 |
| 18-Jun-2022 |
Michał Górny <[email protected]> |
[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 ...
|
| #
a3422793 |
| 15-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Support resuming one process with PID!=current via vCont
Extend vCont function to support resuming a process with an arbitrary PID, that could be different than the one selected via Hc
[lldb] [llgs] Support resuming one process with PID!=current via vCont
Extend vCont function to support resuming a process with an arbitrary PID, that could be different than the one selected via Hc (or no process at all may be selected). Resuming more than one process simultaneously is not supported yet.
Remove the ReadTid() method that was only used by Handle_vCont(), and furthermore it was wrongly using m_current_process rather than m_continue_process.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D127862
show more ...
|
| #
c18784ba |
| 12-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Implement the vKill packet
Implement the support for the vKill packet. This is the modern packet used by the GDB Remote Serial Protocol to kill one of the debugged processes. Unlike
[lldb] [llgs] Implement the vKill packet
Implement the support for the vKill packet. This is the modern packet used by the GDB Remote Serial Protocol to kill one of the debugged processes. Unlike the `k` packet, it has well-defined semantics.
The `vKill` packet takes the PID of the process to kill, and always replies with an `OK` reply (rather than the exit status, as LLGS does for `k` packets at the moment). Additionally, unlike the `k` packet it does not cause the connection to be terminated once the last process is killed — the client needs to close it explicitly.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D127667
show more ...
|
| #
e8fe7e93 |
| 10-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Make `k` kill all processes, and fix multiple exits
Modify the behavior of the `k` packet to kill all inferiors rather than just the current one. The specification leaves the exact be
[lldb] [llgs] Make `k` kill all processes, and fix multiple exits
Modify the behavior of the `k` packet to kill all inferiors rather than just the current one. The specification leaves the exact behavior of this packet up to the implementation but since vKill is specifically meant to be used to kill a single process, it seems logical to use `k` to provide the alternate function of killing all of them.
Move starting stdio forwarding from the "running" response to the packet handlers that trigger the process to start. This avoids attempting to start it multiple times when multiple processes are killed on Linux which implicitly causes LLGS to receive "started" events for all of them. This is probably also more correct as the ability to send "O" packets is implied by the continue-like command being issued (and therefore the client waiting for responses) rather than the start notification.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D127500
show more ...
|
| #
13eb5b34 |
| 08-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Add a test for detach-all packet
Add a test verifying that plain 'D' packet correctly detaches all processes.
Sponsored by: The FreeBSD Foundation Differential Revision: https://revie
[lldb] [llgs] Add a test for detach-all packet
Add a test verifying that plain 'D' packet correctly detaches all processes.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D127291
show more ...
|
| #
d6b3de72 |
| 20-Jun-2022 |
Michał Górny <[email protected]> |
[lldb] [llgs] Fix signo sent with fork/vfork/vforkdone events
Fix ThreadStopInfo struct to include the signal number for all events. Since signo was not included in the details for fork, vfork and v
[lldb] [llgs] Fix signo sent with fork/vfork/vforkdone events
Fix ThreadStopInfo struct to include the signal number for all events. Since signo was not included in the details for fork, vfork and vforkdone stops, the code incidentally referenced the wrong union member, resulting in wrong signo being sent.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D127193
show more ...
|