|
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 |
|
| #
4270c9cd |
| 23-Jun-2022 |
Martin Storsjö <[email protected]> |
[lldb] Stop passing both i386 and i686 in parallel as architectures on Windows
When an object file returns multiple architectures, it is treated as a fat binary - which really isn't the case of i386
[lldb] Stop passing both i386 and i686 in parallel as architectures on Windows
When an object file returns multiple architectures, it is treated as a fat binary - which really isn't the case of i386 vs i686 where the object file actually has one architecture.
This allows getting rid of hardcoded architecture triples in PlatformWindows.
The parallel i386 and i686 architecture strings stem from 5e6f45201f0b62c1e7a24fc396f3ea6e10dc880d / D7120 and ad587ae4ca143d388c0ec4ef2faa1b5eddedbf67 / D4658.
Differential Revision: https://reviews.llvm.org/D128617
show more ...
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2 |
|
| #
2696d82f |
| 17-Apr-2022 |
Saleem Abdulrasool <[email protected]> |
Windows: correct iteration of additional search paths
This adjusts the path iteration - `paths` is a null-terminated sequence of C strings, creating an array from a single contiguous buffer. We wou
Windows: correct iteration of additional search paths
This adjusts the path iteration - `paths` is a null-terminated sequence of C strings, creating an array from a single contiguous buffer. We would previously continue to iterate indefinitely as we did not check if we had encountered the terminator.
Found by inspection.
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 |
|
| #
af921006 |
| 25-Feb-2022 |
Pavel Labath <[email protected]> |
[lldb] Remove the global platform list
This patch moves the platform creation and selection logic into the per-debugger platform lists. I've tried to keep functional changes to a minimum -- the main
[lldb] Remove the global platform list
This patch moves the platform creation and selection logic into the per-debugger platform lists. I've tried to keep functional changes to a minimum -- the main (only) observable difference in this change is that APIs, which select a platform by name (e.g., Debugger::SetCurrentPlatform) will not automatically pick up a platform associated with another debugger (or no debugger at all).
I've also added several tests for this functionality -- one of the pleasant consequences of the debugger isolation is that it is now possible to test the platform selection and creation logic.
This is a product of the discussion at <https://discourse.llvm.org/t/multiple-platforms-with-the-same-name/59594>.
Differential Revision: https://reviews.llvm.org/D120810
show more ...
|
| #
d65e6ff2 |
| 09-Mar-2022 |
Pavel Labath <[email protected]> |
Revert "[lldb] Remove the global platform list"
It makes module dependencies loopier.
This reverts commits 49cffe3c7fab74252d4b6a073303c803dc1659f0 and ffb9429b6f3c29ab4687b96fd85374924c98ad16.
|
| #
ffb9429b |
| 25-Feb-2022 |
Pavel Labath <[email protected]> |
[lldb] Remove the global platform list
This patch moves the platform creation and selection logic into the per-debugger platform lists. I've tried to keep functional changes to a minimum -- the main
[lldb] Remove the global platform list
This patch moves the platform creation and selection logic into the per-debugger platform lists. I've tried to keep functional changes to a minimum -- the main (only) observable difference in this change is that APIs, which select a platform by name (e.g., Debugger::SetCurrentPlatform) will not automatically pick up a platform associated with another debugger (or no debugger at all).
I've also added several tests for this functionality -- one of the pleasant consequences of the debugger isolation is that it is now possible to test the platform selection and creation logic.
This is a product of the discussion at <https://discourse.llvm.org/t/multiple-platforms-with-the-same-name/59594>.
Differential Revision: https://reviews.llvm.org/D120810
show more ...
|
| #
a2c267e0 |
| 22-Feb-2022 |
Ilya Nozhkin <[email protected]> |
[lldb] Fix race condition between lldb-vscode and stop hooks executor
The race is between these two pieces of code that are executed in two separate lldb-vscode threads (the first is in the main thr
[lldb] Fix race condition between lldb-vscode and stop hooks executor
The race is between these two pieces of code that are executed in two separate lldb-vscode threads (the first is in the main thread and another is in the event-handling thread):
``` // lldb-vscode.cpp g_vsc.debugger.SetAsync(false); g_vsc.target.Launch(launch_info, error); g_vsc.debugger.SetAsync(true); ```
``` // Target.cpp bool old_async = debugger.GetAsyncExecution(); debugger.SetAsyncExecution(true); debugger.GetCommandInterpreter().HandleCommands(GetCommands(), exc_ctx, options, result); debugger.SetAsyncExecution(old_async); ```
The sequence that leads to the bug is this one: 1. Main thread enables synchronous mode and launches the process. 2. When the process is launched, it generates the first stop event. 3. This stop event is catched by the event-handling thread and DoOnRemoval is invoked. 4. Inside DoOnRemoval, this thread runs stop hooks. And before running stop hooks, the current synchronization mode is stored into old_async (and right now it is equal to "false"). 5. The main thread finishes the launch and returns to lldb-vscode, the synchronization mode is restored to asynchronous by lldb-vscode. 6. Event-handling thread finishes stop hooks processing and restores the synchronization mode according to old_async (i.e. makes the mode synchronous) 7. And now the mode is synchronous while lldb-vscode expects it to be asynchronous. Synchronous mode forbids the process to broadcast public stop events, so, VS Code just hangs because lldb-vscode doesn't notify it about stops.
So, this diff makes the target intercept the first stop event if the process is launched in the synchronous mode, thus preventing stop hooks execution.
The bug is only present on Windows because other platforms already intercept this event using their own hijacking listeners.
So, this diff also fixes some problems with lldb-vscode tests on Windows to make it possible to run the related test. Other tests still can't be enabled because the debugged program prints something into stdout and LLDB can't intercept this output and redirect it to lldb-vscode properly.
Reviewed By: jingham
Differential Revision: https://reviews.llvm.org/D119548
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
81f4874c |
| 08-Dec-2021 |
Benjamin Kramer <[email protected]> |
Silence format string warning harder.
This can be unsigned long or unsigned long long depending on where it's compiled. Use the ugly portable way. PlatformWindows.cpp:397:63: warning: format specifi
Silence format string warning harder.
This can be unsigned long or unsigned long long depending on where it's compiled. Use the ugly portable way. PlatformWindows.cpp:397:63: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long')
show more ...
|
| #
906e60b9 |
| 07-Dec-2021 |
Saleem Abdulrasool <[email protected]> |
lldb: silence a warning on the Windows error path (NFCI)
This corrects the printf specifier for the `error_code` parameter that was reported by @thakis.
|
| #
ee4b4626 |
| 05-Dec-2021 |
Kazu Hirata <[email protected]> |
[lldb] Fix a warning
This patch fixes:
lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp:386:13: error: comparison between NULL and non-pointer ('lldb::addr_t' (aka 'unsigned long') an
[lldb] Fix a warning
This patch fixes:
lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp:386:13: error: comparison between NULL and non-pointer ('lldb::addr_t' (aka 'unsigned long') and NULL) [-Werror,-Wnull-arithmetic]
show more ...
|
| #
f1585a4b |
| 29-Nov-2021 |
Saleem Abdulrasool <[email protected]> |
Windows: support `DoLoadImage`
This implements `DoLoadImage` and `UnloadImage` in the Windows platform plugin modelled after the POSIX platform plugin. This was previously unimplemented and resulte
Windows: support `DoLoadImage`
This implements `DoLoadImage` and `UnloadImage` in the Windows platform plugin modelled after the POSIX platform plugin. This was previously unimplemented and resulted in a difficult to decipher error without any logging.
This implementation is intended to support enables the use of LLDB's Swift REPL on Windows.
Paths which are added to the library search path are persistent and applied to all subsequent loads. This can be adjusted in the future by storing all the cookies and restoring the path prior to returning from the helper. However, the dynamic path count makes this a bit more challenging.
Reviewed By: @JDevlieghere Differential Revision: https://reviews.llvm.org/D77287
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
1b468f1c |
| 15-Nov-2021 |
Pavel Labath <[email protected]> |
[lldb] Port PlatformWindows, PlatformOpenBSD and PlatformRemoteGDBServer to GetSupportedArchitectures
|
| #
a458ef4f |
| 21-Oct-2021 |
Pavel Labath <[email protected]> |
[lldb] Remove ConstString from Platform plugin names
|
| #
4bd46501 |
| 25-Oct-2021 |
Kazu Hirata <[email protected]> |
Use llvm::any_of and llvm::none_of (NFC)
|
| #
a3939e15 |
| 15-Oct-2021 |
Pavel Labath <[email protected]> |
[lldb] Return StringRef from PluginInterface::GetPluginName
There is no reason why this function should be returning a ConstString.
While modifying these files, I also fixed several instances where
[lldb] Return StringRef from PluginInterface::GetPluginName
There is no reason why this function should be returning a ConstString.
While modifying these files, I also fixed several instances where GetPluginName and GetPluginNameStatic were returning different strings.
I am not changing the return type of GetPluginNameStatic in this patch, as that would necessitate additional changes, and this patch is big enough as it is.
Differential Revision: https://reviews.llvm.org/D111877
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
9f34f75f |
| 14-Sep-2021 |
Martin Storsjö <[email protected]> |
[lldb] [Windows] Fix continuing from breakpoints and singlestepping on ARM/AArch64
Based on suggestions by Eric Youngdale.
This fixes https://llvm.org/PR51673.
Differential Revision: https://revie
[lldb] [Windows] Fix continuing from breakpoints and singlestepping on ARM/AArch64
Based on suggestions by Eric Youngdale.
This fixes https://llvm.org/PR51673.
Differential Revision: https://reviews.llvm.org/D109777
show more ...
|
| #
bd590a5f |
| 16-Sep-2021 |
Pavel Labath <[email protected]> |
[lldb] Make Platform::DebugProcess take a Target reference
instead of a pointer. There are just two callers of this function, and both of them have a valid target pointer, so there's no need for all
[lldb] Make Platform::DebugProcess take a Target reference
instead of a pointer. There are just two callers of this function, and both of them have a valid target pointer, so there's no need for all implementations to concern themselves with whether the pointer is null.
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc3, 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 |
|
| #
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 ...
|
|
Revision tags: llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, 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 |
|
| #
2634ec6c |
| 11-Dec-2020 |
Tatyana Krasnukha <[email protected]> |
[lldb] "target create" shouldn't save target if the command failed
TargetList::CreateTarget automatically adds created target to the list, however, CommandObjectTargetCreate does some additional pre
[lldb] "target create" shouldn't save target if the command failed
TargetList::CreateTarget automatically adds created target to the list, however, CommandObjectTargetCreate does some additional preparation after creating a target and which can fail. The command should remove created target if it failed. Since the function has many ways to return, scope guard does this work safely.
Changes to the TargetList make target adding and selection more transparent.
Other changes remove unnecessary SetSelectedTarget after CreateTarget.
Differential Revision: https://reviews.llvm.org/D93052
show more ...
|
|
Revision tags: llvmorg-11.0.1-rc1 |
|
| #
18e4272a |
| 20-Nov-2020 |
Michał Górny <[email protected]> |
[lldb] Prevent 'process connect' from using local-only plugins
Add a 'can_connect' parameter to Process plugin initialization, and use it to filter plugins to these capable of remote connections. T
[lldb] Prevent 'process connect' from using local-only plugins
Add a 'can_connect' parameter to Process plugin initialization, and use it to filter plugins to these capable of remote connections. This is used to prevent 'process connect' from picking up a plugin that can only be used locally, e.g. the legacy FreeBSD plugin.
Differential Revision: https://reviews.llvm.org/D91810
show more ...
|
| #
0610a25a |
| 09-Oct-2020 |
Pavel Labath <[email protected]> |
[lldb] Delete copy operations on PluginInterface class
This is a polymorphic class, copying it is a bad idea.
This was not a problem because most classes inheriting from it were deleting their copy
[lldb] Delete copy operations on PluginInterface class
This is a polymorphic class, copying it is a bad idea.
This was not a problem because most classes inheriting from it were deleting their copy operations themselves. However, this enables us to delete those explicit deletions, and ensure noone forgets to add them in the future.
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, 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 |
|
| #
e072b20b |
| 13-May-2020 |
Pavel Labath <[email protected]> |
[lldb] Merge PlatformXXX::ResolveExecutable
The near-identical implementations of this function for posix-y platforms were merged in r293910. PlatformWindows was left out of this merge because at th
[lldb] Merge PlatformXXX::ResolveExecutable
The near-identical implementations of this function for posix-y platforms were merged in r293910. PlatformWindows was left out of this merge because at the time we did not have a suitable base class to sink the code into. That is no longer true, so this commit finishes the job by moving the code into RemoteAwarePlatform::ResolveExecutable.
show more ...
|
|
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 |
|
| #
bba9ba8d |
| 14-Feb-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Plugin] s/LLDB_PLUGIN/LLDB_PLUGIN_DEFINE/ (NFC)
Rename LLDB_PLUGIN to LLDB_PLUGIN_DEFINE as Pavel suggested in D73067 to avoid name conflict.
|
|
Revision tags: llvmorg-10.0.0-rc2 |
|
| #
6115bd9b |
| 10-Feb-2020 |
Martin Storsjö <[email protected]> |
[LLDB] Fix GCC warnings about extra semicolons. NFC.
|
| #
fbb4d1e4 |
| 07-Feb-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Plugins] Use external functions to (de)initialize plugins
This is a step towards making the initialize and terminate calls be generated by CMake, which in turn is towards making it possible to
[lldb/Plugins] Use external functions to (de)initialize plugins
This is a step towards making the initialize and terminate calls be generated by CMake, which in turn is towards making it possible to disable plugins at configuration time.
Differential revision: https://reviews.llvm.org/D74245
show more ...
|
|
Revision tags: 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 ...
|