Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5 |
|
#
c1dff715 |
| 28-Nov-2024 |
Pavel Labath <pavel@labath.sk> |
[lldb] Remove child_process_inherit from the socket classes (#117699)
It's never set to true. Also, using inheritable FDs in a multithreaded
process pretty much guarantees descriptor leaks. It's be
[lldb] Remove child_process_inherit from the socket classes (#117699)
It's never set to true. Also, using inheritable FDs in a multithreaded
process pretty much guarantees descriptor leaks. It's better to
explicitly pass a specific FD to a specific subprocess, which we already
mostly can do using the ProcessLaunchInfo FileActions.
show more ...
|
#
07238704 |
| 27-Nov-2024 |
Pavel Labath <pavel@labath.sk> |
[lldb] Add timeout argument to Socket::Accept (#117691)
Allows us to stop waiting for a connection if it doesn't come in a
certain amount of time. Right now, I'm keeping the status quo (infitnite
[lldb] Add timeout argument to Socket::Accept (#117691)
Allows us to stop waiting for a connection if it doesn't come in a
certain amount of time. Right now, I'm keeping the status quo (infitnite
wait) in the "production" code, but using smaller (finite) values in
tests. (A lot of these tests create "loopback" connections, where a
really short wait is sufficient: on linux at least even a poll (0s wait)
is sufficient if the other end has connect()ed already, but this doesn't
seem to be the case on Windows, so I'm using a 1s wait in these cases).
show more ...
|
Revision tags: llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0 |
|
#
345cc47b |
| 09-Sep-2024 |
Daniil Fukalov <dfukalov@gmail.com> |
[NFC] Add explicit #include llvm-config.h where its macros are used, lldb part. (#107603)
(this is lldb part)
Without these explicit includes, removing other headers, who implicitly
include llvm
[NFC] Add explicit #include llvm-config.h where its macros are used, lldb part. (#107603)
(this is lldb part)
Without these explicit includes, removing other headers, who implicitly
include llvm-config.h, may have non-trivial side effects. For example,
`clangd` may report even `llvm-config.h` as "no used" in case it defines
a macro, that is explicitly used with #ifdef. It is actually amplified
with different build configs which use different set of macros.
show more ...
|
#
5d2b3378 |
| 06-Sep-2024 |
Dmitry Vasilyev <dvassiliev@accesssoftek.com> |
[lldb][NFC] Used shared_fd_t (#107553)
Replaced `int connection_fd = -1` with `shared_fd_t connection_fd =
SharedSocket::kInvalidFD`.
This is prerequisite for #104238.
|
#
b11a7039 |
| 06-Sep-2024 |
Dmitry Vasilyev <dvassiliev@accesssoftek.com> |
[lldb] Fixed a typo in #107388
|
#
d4e320e6 |
| 06-Sep-2024 |
Christian Sigg <csigg@google.com> |
[lldb][NFC] Fix -Wparentheses warning.
Fix `using the result of an assignment as a condition without parentheses` warning.
|
#
725fab98 |
| 06-Sep-2024 |
Dmitry Vasilyev <dvassiliev@accesssoftek.com> |
[lldb][NFC] Separated GDBRemoteCommunication::GetDebugserverPath() (#107388)
This is the prerequisite for #104238.
|
#
a0dd90eb |
| 05-Sep-2024 |
Adrian Prantl <aprantl@apple.com> |
[lldb] Make conversions from llvm::Error explicit with Status::FromEr… (#107163)
…ror() [NFC]
|
Revision tags: llvmorg-19.1.0-rc4 |
|
#
0642cd76 |
| 27-Aug-2024 |
Adrian Prantl <aprantl@apple.com> |
[lldb] Turn lldb_private::Status into a value type. (#106163)
This patch removes all of the Set.* methods from Status.
This cleanup is part of a series of patches that make it harder use the
ant
[lldb] Turn lldb_private::Status into a value type. (#106163)
This patch removes all of the Set.* methods from Status.
This cleanup is part of a series of patches that make it harder use the
anti-pattern of keeping a long-lives Status object around and updating
it while dropping any errors it contains on the floor.
This patch is largely NFC, the more interesting next steps this enables
is to:
1. remove Status.Clear()
2. assert that Status::operator=() never overwrites an error
3. remove Status::operator=()
Note that step (2) will bring 90% of the benefits for users, and step
(3) will dramatically clean up the error handling code in various
places. In the end my goal is to convert all APIs that are of the form
` ResultTy DoFoo(Status& error)
`
to
` llvm::Expected<ResultTy> DoFoo()
`
How to read this patch?
The interesting changes are in Status.h and Status.cpp, all other
changes are mostly
` perl -pi -e 's/\.SetErrorString/ = Status::FromErrorString/g' $(git
grep -l SetErrorString lldb/source)
`
plus the occasional manual cleanup.
show more ...
|
Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2 |
|
#
f083764b |
| 26-Jul-2024 |
Dmitry Vasilyev <dvassiliev@accesssoftek.com> |
[lldb] Optimized lldb-server memory usage (#100666)
MAX_PATH is definitely larger than 6 bytes we are expecting for this
message, and could be rather large depending on the target OS (4K for
some
[lldb] Optimized lldb-server memory usage (#100666)
MAX_PATH is definitely larger than 6 bytes we are expecting for this
message, and could be rather large depending on the target OS (4K for
some Linux OSs).
Since the buffer gets allocated on the stack we better be conservative
and allocate what we actually need.
show more ...
|
Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8 |
|
#
0af2e75f |
| 10-Jun-2024 |
Shivam Gupta <shivam98.tkg@gmail.com> |
[lldb] Fix redundant condition in compression type check (NFC) (#94841)
The `else if` condition for checking `m_compression_type` is redundant
as it matches with a previous `if` condition, making t
[lldb] Fix redundant condition in compression type check (NFC) (#94841)
The `else if` condition for checking `m_compression_type` is redundant
as it matches with a previous `if` condition, making the expression
always false. Reported by cppcheck as a possible cut-and-paste error.
Caught by cppcheck -
lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp:543:35:
style: Expression is always false because 'else if' condition matches
previous condition at line 535. [multiCondition]
Fix #91222
show more ...
|
Revision tags: 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 |
|
#
f2d32ddc |
| 09-Aug-2023 |
Alex Langford <alangford@apple.com> |
[lldb] Sink StreamFile into lldbHost
StreamFile subclasses Stream (from lldbUtility) and is backed by a File (from lldbHost). It does not depend on anything from lldbCore or any of its sibling libra
[lldb] Sink StreamFile into lldbHost
StreamFile subclasses Stream (from lldbUtility) and is backed by a File (from lldbHost). It does not depend on anything from lldbCore or any of its sibling libraries, so I think it makes sense for this to live in lldbHost instead.
Differential Revision: https://reviews.llvm.org/D157460
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, 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 |
|
#
58e9cc13 |
| 19-Dec-2022 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Revert "[lldb] Remove redundant .c_str() and .get() calls"
This reverts commit fbaf48be0ff6fb24b9aa8fe9c2284fe88a8798dd.
This has broken all LLDB buildbots: https://lab.llvm.org/buildbot/#/builders
Revert "[lldb] Remove redundant .c_str() and .get() calls"
This reverts commit fbaf48be0ff6fb24b9aa8fe9c2284fe88a8798dd.
This has broken all LLDB buildbots: https://lab.llvm.org/buildbot/#/builders/68/builds/44990 https://lab.llvm.org/buildbot/#/builders/96/builds/33160
show more ...
|
#
fbaf48be |
| 18-Dec-2022 |
Fangrui Song <i@maskray.me> |
[lldb] Remove redundant .c_str() and .get() calls
Removing .c_str() has a semantics difference, but the use scenarios likely do not matter as we don't have NUL in the strings.
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2 |
|
#
b6c24c16 |
| 01-Oct-2022 |
Michał Górny <mgorny@gentoo.org> |
[lldb] [gdb-remote] Move ReadPacketWithOutputSupport() to client
Move ReadPacketWithOutputSupport() from GDBRemoteCommunication to GDBRemoteClientBase. This function is client-specific and moving i
[lldb] [gdb-remote] Move ReadPacketWithOutputSupport() to client
Move ReadPacketWithOutputSupport() from GDBRemoteCommunication to GDBRemoteClientBase. This function is client-specific and moving it there simplifies followup patches that split communication into separate thread.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.llvm.org/D135028
show more ...
|
#
3ae63376 |
| 20-Sep-2022 |
George Hu <huyubohyb@gmail.com> |
[LLDB]Initialize accept_socket with nullptr
Fix high impact issue of illegal access of memory. Initialize accept_socket with nullptr.
Differential Revision: https://reviews.llvm.org/D134293
|
Revision tags: llvmorg-15.0.1 |
|
#
70599d70 |
| 19-Sep-2022 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb] Remove LLDB reproducers
This patch removes the remaining reproducer code. The SBReproducer class remains for ABI stability but is just an empty shell. This completes the removal process outli
[lldb] Remove LLDB reproducers
This patch removes the remaining reproducer code. The SBReproducer class remains for ABI stability but is just an empty shell. This completes the removal process outlined on the mailing list [1].
[1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html
show more ...
|
#
bdb4468d |
| 07-Sep-2022 |
Michał Górny <mgorny@moritz.systems> |
[gdb-remote] Move broadcasting logic down to GDBRemoteClientBase
Move the broadcasting support from GDBRemoteCommunication to GDBRemoteClientBase since this is where it is actually used. Remove GDB
[gdb-remote] Move broadcasting logic down to GDBRemoteClientBase
Move the broadcasting support from GDBRemoteCommunication to GDBRemoteClientBase since this is where it is actually used. Remove GDBRemoteCommunication and subclass constructor arguments left over after Communication cleanup.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D133427
show more ...
|
Revision tags: llvmorg-15.0.0 |
|
#
9823d425 |
| 03-Sep-2022 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [Core] Split read thread support into ThreadedCommunication
Split the read thread support from Communication into a dedicated ThreadedCommunication subclass. The read thread support is used
[lldb] [Core] Split read thread support into ThreadedCommunication
Split the read thread support from Communication into a dedicated ThreadedCommunication subclass. The read thread support is used only by a subset of Communication consumers, and it adds a lot of complexity to the base class. Furthermore, having a dedicated subclass makes it clear whether a particular consumer needs to account for the possibility of read thread being running or not.
The modules currently calling `StartReadThread()` are updated to use `ThreadedCommunication`. The remaining modules use the simplified `Communication` class.
`SBCommunication` is changed to use `ThreadedCommunication` in order to avoid changing the public API.
`CommunicationKDP` is updated in order to (hopefully) compile with the new code. However, I do not have a Darwin box to test it, so I've limited the changes to the bare minimum.
`GDBRemoteCommunication` is updated to become a `Broadcaster` directly. Since it does not inherit from `ThreadedCommunication`, its event support no longer collides with the one used for read thread and can be implemented cleanly. The support for `eBroadcastBitReadThreadDidExit` is removed from the code -- since the read thread was not used, this event was never reported.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D133251
show more ...
|
Revision tags: llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2 |
|
#
59d2495f |
| 08-Aug-2022 |
Fangrui Song <i@maskray.me> |
[lldb] LLVM_FALLTHROUGH => [[fallthrough]]. NFC
|
Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init |
|
#
459cfa5e |
| 20-Jul-2022 |
Slava Gurevich <sgurevich@gmail.com> |
[LLDB][NFC][Reliability] Fix uninitialized variables from Coverity scan
Improve LLDB reliability by fixing the following "uninitialized variables" static code inspection warnings from scan.coverity.
[LLDB][NFC][Reliability] Fix uninitialized variables from Coverity scan
Improve LLDB reliability by fixing the following "uninitialized variables" static code inspection warnings from scan.coverity.com:
1094796 1095721 1095728 1095737 1095741 1095756 1095779 1095789 1095805 1214552 1229457 1232475 1274006 1274010 1293427 1364800 1364802 1364804 1364812 1364816 1374902 1374909 1384975 1399312 1420451 1431704 1454230 1454554 1454615 1454579 1454594 1454832 1457759 1458696 1461909 1467658 1487814 1487830 1487845
Differential Revision: https://reviews.llvm.org/D130098
show more ...
|
Revision tags: llvmorg-14.0.6, 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 |
|
#
d0810779 |
| 21-Feb-2022 |
Pavel Labath <pavel@labath.sk> |
[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 |
|
#
b1127753 |
| 28-Jan-2022 |
Pavel Labath <pavel@labath.sk> |
[lldb] Convert ProcessGDBRemoteLog to the new API
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
#
165545c7 |
| 24-Nov-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb/gdb-remote] Ignore spurious ACK packets
Although I cannot find any mention of this in the specification, both gdb and lldb agree on sending an initial + packet after establishing the connectio
[lldb/gdb-remote] Ignore spurious ACK packets
Although I cannot find any mention of this in the specification, both gdb and lldb agree on sending an initial + packet after establishing the connection.
OTOH, gdbserver and lldb-server behavior is subtly different. While lldb-server *expects* the initial ack, and drops the connection if it is not received, gdbserver will just ignore a spurious ack at _any_ point in the connection.
This patch changes lldb's behavior to match that of gdb. An ACK packet is ignored at any point in the connection (except when expecting an ACK packet, of course). This is inline with the "be strict in what you generate, and lenient in what you accept" philosophy, and also enables us to remove some special cases from the server code. I've extended the same handling to NAK (-) packets, mainly because I don't see a reason to treat them differently here.
(The background here is that we had a stub which was sending spurious + packets. This bug has since been fixed, but I think this change makes sense nonetheless.)
Differential Revision: https://reviews.llvm.org/D114520
show more ...
|