|
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 |
|
| #
a1f20da3 |
| 23-Jun-2022 |
Jim Ingham <[email protected]> |
The help string for stop-on-shared-library-load was copied to stop-on-exec. Fix it so it says it does what it does.
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
c866f854 |
| 22-Jun-2022 |
Jonas Devlieghere <[email protected]> |
[lldb] Add a setting to specify the preferred dynamic class info extractor o
Add a setting to configure how LLDB parses dynamic Objective-C class metadata. By default LLDB will choose the most appro
[lldb] Add a setting to specify the preferred dynamic class info extractor o
Add a setting to configure how LLDB parses dynamic Objective-C class metadata. By default LLDB will choose the most appropriate method for the target OS.
Differential revision: https://reviews.llvm.org/D128312
show more ...
|
|
Revision tags: llvmorg-14.0.5 |
|
| #
2f23abd6 |
| 28-May-2022 |
Jason Molenda <[email protected]> |
Increase the default maximum stack walk
lldb will only backtrace a fixed number of stack frames, as a last-ditch attempt to avoid a runaway looping backtrace. It's unusual that anyone ends up depen
Increase the default maximum stack walk
lldb will only backtrace a fixed number of stack frames, as a last-ditch attempt to avoid a runaway looping backtrace. It's unusual that anyone ends up depending on this final safety net in years. I picked the original number of 300000 was picked by seeing how many stack frames I could make in a small recursive function on Darwin systems before using the default stack space. Checking again today on a modern system, I can exceed this limit & lldb will not show the original invocation of the recursing call. Double the old value to cover this larger maximum possible stack frame count, as a default value. (`target.process.thread.max-backtrace-depth`)
show more ...
|
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3 |
|
| #
2f9fc576 |
| 26-Apr-2022 |
Dave Lee <[email protected]> |
[lldb] Add setting for max depth of value object printing (NFC)
This adds a setting (`target.max-children-depth`) that will provide a default value for the `--depth` flag used by `expression` and `f
[lldb] Add setting for max depth of value object printing (NFC)
This adds a setting (`target.max-children-depth`) that will provide a default value for the `--depth` flag used by `expression` and `frame variable`.
The new setting uses the same default that's currently fixed in source: `UINT32_MAX`.
This provides two purposes:
1. Allowing downstream forks to provide a customized default. 2. Allowing users to set their own default.
Following `target.max-children-count`, a warning is emitted when the max depth is reached. The warning lets users know which flags or settings they can customize. This warning is shown only when the limit is the default value.
rdar://87466495
Differential Revision: https://reviews.llvm.org/D123954
show more ...
|
|
Revision tags: llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
94ec0b6c |
| 08-Mar-2022 |
Jim Ingham <[email protected]> |
Change "target.save-jit-objects" to "target.save-jit-objects-dir". The old command wrote to CWD, which doesn't always work, and if it didn't, there was no workaround (and it crashed on failure). Thi
Change "target.save-jit-objects" to "target.save-jit-objects-dir". The old command wrote to CWD, which doesn't always work, and if it didn't, there was no workaround (and it crashed on failure). This patch changed the setting to provide a directory to save the objects to.
Differential Revision: https://reviews.llvm.org/D121036
show more ...
|
|
Revision tags: 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 |
|
| #
156cb4cc |
| 27-Sep-2021 |
Pavel Labath <[email protected]> |
[lldb] Remove non-stop mode code
We added some support for this mode back in 2015, but the feature was never productionized. It is completely untested, and there are known major structural lldb issu
[lldb] Remove non-stop mode code
We added some support for this mode back in 2015, but the feature was never productionized. It is completely untested, and there are known major structural lldb issues that need to be resolved before this feature can really be supported.
It also complicates making further changes to stop reply packet handling, which is what I am about to do.
Differential Revision: https://reviews.llvm.org/D110553
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, 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, llvmorg-12.0.1-rc1 |
|
| #
4a2a9473 |
| 12-Apr-2021 |
Michał Górny <[email protected]> |
[lldb] [client] Implement follow-fork-mode
Implement a new target.process.follow-fork-mode setting to control LLDB's behavior on fork. If set to 'parent', the forked child is detached and parent co
[lldb] [client] Implement follow-fork-mode
Implement a new target.process.follow-fork-mode setting to control LLDB's behavior on fork. If set to 'parent', the forked child is detached and parent continues being traced. If set to 'child', the parent is detached and child becomes traced instead.
Differential Revision: https://reviews.llvm.org/D100503
show more ...
|
| #
66ba4e3d |
| 29-Jul-2021 |
Stella Stamenova <[email protected]> |
Revert "[lldb] Assert filecache and live memory match on debug under a setting"
This reverts commit 77e9d10f0fbfe04a14e6ce61753376dd78e0c2f0.
This change broke the Windows LLDB bot: https://lab.llv
Revert "[lldb] Assert filecache and live memory match on debug under a setting"
This reverts commit 77e9d10f0fbfe04a14e6ce61753376dd78e0c2f0.
This change broke the Windows LLDB bot: https://lab.llvm.org/buildbot/#/builders/83/builds/8784/steps/7/logs/stdio
show more ...
|
| #
77e9d10f |
| 27-Jul-2021 |
Augusto Noronha <[email protected]> |
[lldb] Assert filecache and live memory match on debug under a setting
|
| #
379f24ff |
| 09-Jul-2021 |
Jim Ingham <[email protected]> |
Revert "Revert "Reset the wakeup timeout when we re-enter the continue wait.""
This reverts commit 82a38837150099288a1262391ef43e1fd69ffde4.
The original version had a copy-paste error: using the I
Revert "Revert "Reset the wakeup timeout when we re-enter the continue wait.""
This reverts commit 82a38837150099288a1262391ef43e1fd69ffde4.
The original version had a copy-paste error: using the Interrupt timeout for the ResumeSynchronous wait, which is clearly wrong. This error would have been evident with real use, but the interrupt is long enough that it only caused one testsuite failure (in the Swift fork).
Anyway, I found that mistake and fixed it and checked all the other places where I had to plumb through a timeout, and added a test with a short interrupt timeout stepping over a function that takes 3x the interrupt timeout to complete, so that should detect a similar mistake in the future.
show more ...
|
| #
82a38837 |
| 17-May-2021 |
Jim Ingham <[email protected]> |
Revert "Reset the wakeup timeout when we re-enter the continue wait."
This reverts commit bd5751f3d249ec0798060bd98c07272174c52af0. This patch series is causing us to every so often miss switching t
Revert "Reset the wakeup timeout when we re-enter the continue wait."
This reverts commit bd5751f3d249ec0798060bd98c07272174c52af0. This patch series is causing us to every so often miss switching the state from eStateRunning to eStateStopped when we get the stop packet from the debug server.
Reverting till I can figure out how that could be happening.
show more ...
|
| #
9558b602 |
| 06-May-2021 |
Jim Ingham <[email protected]> |
Add an "interrupt timeout" to Process, and pipe that through the ProcessGDBRemote plugin layers.
Also fix a bug where if we tried to interrupt, but the ReadPacket wakeup timer woke us up just after
Add an "interrupt timeout" to Process, and pipe that through the ProcessGDBRemote plugin layers.
Also fix a bug where if we tried to interrupt, but the ReadPacket wakeup timer woke us up just after the timeout, we would break out the switch, but then since we immediately check if the response is empty & fail if it is, we could end up actually only giving a small interval to the interrupt.
Differential Revision: https://reviews.llvm.org/D102085
show more ...
|
| #
fdbb5a7a |
| 14-Apr-2021 |
Jonas Devlieghere <[email protected]> |
[lldb] Add code and data address mask to Process
Add a code and data address mask to Process with respective getters and setters and a setting that allows the user to specify the mast as a number of
[lldb] Add code and data address mask to Process
Add a code and data address mask to Process with respective getters and setters and a setting that allows the user to specify the mast as a number of addressable bits. The masks will be used by FixCodeAddress and FixDataAddress respectively in the ABI classes.
Differential revision: https://reviews.llvm.org/D100515
show more ...
|
| #
dd453a13 |
| 08-Apr-2021 |
Jason Molenda <[email protected]> |
Add setting to disable LanguageRuntime UnwindPlans
When debugging LanguageRuntime unwindplans, it can be helpful to disable their use and see the normal stack walk. Add a setting for this.
Differe
Add setting to disable LanguageRuntime UnwindPlans
When debugging LanguageRuntime unwindplans, it can be helpful to disable their use and see the normal stack walk. Add a setting for this.
Differential Revision: https://reviews.llvm.org/D99828
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3 |
|
| #
38dfb235 |
| 24-Feb-2021 |
Jonas Devlieghere <[email protected]> |
[lldb] Support debugging utility functions
LLDB uses utility functions to run code in the inferior for its own internal purposes, such as reading classes from the Objective-C runtime for example. Be
[lldb] Support debugging utility functions
LLDB uses utility functions to run code in the inferior for its own internal purposes, such as reading classes from the Objective-C runtime for example. Because these expressions should be transparent to the user, we ignore breakpoints and unwind the stack on errors, which makes them hard to debug.
This patch adds a new setting target.debug-utility-expression that, when enabled, changes these options to facilitate debugging. It enables breakpoints, disables unwinding and writes out the utility function source code to disk so it shows up in the source view.
Differential revision: https://reviews.llvm.org/D97249
show more ...
|
|
Revision tags: 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 |
|
| #
95860828 |
| 10-Dec-2020 |
Raphael Isemann <[email protected]> |
[lldb] Allow LLDB to automatically retry a failed expression with an imported std C++ module
By now LLDB can import the 'std' C++ module to improve expression evaluation, but there are still a few p
[lldb] Allow LLDB to automatically retry a failed expression with an imported std C++ module
By now LLDB can import the 'std' C++ module to improve expression evaluation, but there are still a few problems to solve before we can do this by default. One is that importing the C++ module is slightly slower than normal expression evaluation (mostly because the disk access and loading the initial lookup data is quite slow in comparison to the barebone Clang setup the rest of the LLDB expression evaluator is usually doing). Another problem is that some complicated types in the standard library aren't fully supported yet by the ASTImporter, so we end up types that fail to import (which usually appears to the user as if the type is empty or there is just no result variable).
To still allow people to adopt this mode in their daily debugging, this patch adds a setting that allows LLDB to automatically retry failed expression with a loaded C++ module. All success expressions will behave exactly as they would do before this patch. Failed expressions get a another parse attempt if we find a usable C++ module in the current execution context. This way we shouldn't have any performance/parsing regressions in normal debugging workflows, while the debugging workflows involving STL containers benefit from the C++ module type info.
This setting is off by default for now with the intention to enable it by default on macOS soon-ish.
The implementation is mostly just extracting the existing parse logic into its own function and then calling the parse function again if the first evaluation failed and we have a C++ module to retry the parsing with.
Reviewed By: shafik, JDevlieghere, aprantl
Differential Revision: https://reviews.llvm.org/D92784
show more ...
|
|
Revision tags: llvmorg-11.0.1-rc1 |
|
| #
dbcc6921 |
| 18-Nov-2020 |
Dave Lee <[email protected]> |
[lldb] Add examples and reword source-map help string
Update the help string for `target.source-map` to remove the use of the word "duple" and to add examples. Additionally I rewrote parts with the
[lldb] Add examples and reword source-map help string
Update the help string for `target.source-map` to remove the use of the word "duple" and to add examples. Additionally I rewrote parts with the goal of making the description more concrete.
rdar://68736012
Differential Revision: https://reviews.llvm.org/D91742
show more ...
|
| #
02114e15 |
| 13-Oct-2020 |
Raphael Isemann <[email protected]> |
[lldb] Allow limiting the number of error diagnostics when parsing an expression
While debugging another bug I found out that we currently don't set any limit for the number of diagnostics Clang emi
[lldb] Allow limiting the number of error diagnostics when parsing an expression
While debugging another bug I found out that we currently don't set any limit for the number of diagnostics Clang emits. If a user does something that generates a lot of errors (like including some long header file from within the expression function), then we currently spam the LLDB output with potentially thousands of Clang error diagnostics.
Clang sets a default limit of 20 errors, but given that LLDB is often used interactively for small expressions I would say a limit of 5 is enough. The limit is implemented as a setting, so if a user cares about seeing having a million errors printed to their terminal then they can just increase the settings value.
Reviewed By: shafik, mib
Differential Revision: https://reviews.llvm.org/D88889
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 |
|
| #
d3dfd8ce |
| 07-Aug-2020 |
Jim Ingham <[email protected]> |
Add a setting to force stepping to always run all threads. Also allow ScriptedThreadPlans to set & get their StopOthers state.
<rdar://problem/64229484>
Differential Revision: https://reviews.llvm.
Add a setting to force stepping to always run all threads. Also allow ScriptedThreadPlans to set & get their StopOthers state.
<rdar://problem/64229484>
Differential Revision: https://reviews.llvm.org/D85265
show more ...
|
| #
249a1d4f |
| 05-Aug-2020 |
Jonas Devlieghere <[email protected]> |
[lldb] Add an option to inherit TCC permissions from parent.
Add an option that allows the user to decide to not make the inferior is responsible for its own TCC permissions. If you don't make the i
[lldb] Add an option to inherit TCC permissions from parent.
Add an option that allows the user to decide to not make the inferior is responsible for its own TCC permissions. If you don't make the inferior responsible, it inherits the permissions of its parent. The motivation is the scenario of running the LLDB test suite from an external hard drive. If the inferior is responsible, every test needs to be granted access to the external volume. When the permissions are inherited, approval needs to be granted only once.
Differential revision: https://reviews.llvm.org/D85237
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 |
|
| #
220c17ff |
| 22-May-2020 |
Adrian Prantl <[email protected]> |
Print a warning when stopped in a frame LLDB has no plugin for.
This patchs adds an optional warning that is printed when stopped at a frame that was compiled in a source language that LLDB has no p
Print a warning when stopped in a frame LLDB has no plugin for.
This patchs adds an optional warning that is printed when stopped at a frame that was compiled in a source language that LLDB has no plugin for.
The motivational use-case is debugging Swift code on Linux. When the user accidentally invokes the system LLDB that was built without the Swift plugin, it is very much non-obvious why debugging doesnt work. This warning makes it easy to figure out what went wrong.
<rdar://problem/56986569>
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc1 |
|
| #
018e5a96 |
| 19-May-2020 |
Jonas Devlieghere <[email protected]> |
[lldb/Properties] Move OSPluginReportsAllThreads from Target to Process
This is what Jim wanted originally.
rdar://problem/61236293
Differential revision: https://reviews.llvm.org/D80159
|
| #
203a8adb |
| 06-Apr-2020 |
Raphael Isemann <[email protected]> |
[lldb] Add option to retry Fix-Its multiple times to failed expressions
Summary: Usually when Clang emits an error Fix-It it does two things. It emits the diagnostic and then it fixes the currently
[lldb] Add option to retry Fix-Its multiple times to failed expressions
Summary: Usually when Clang emits an error Fix-It it does two things. It emits the diagnostic and then it fixes the currently generated AST to reflect the applied Fix-It. While emitting the diagnostic is easy to implement, fixing the currently generated AST is often tricky. That causes that some Fix-Its just keep the AST as-is or abort the parsing process entirely. Once the parser stopped, any Fix-Its for the rest of the expression are not detected and when the user manually applies the Fix-It, the next expression will just produce a new Fix-It.
This is often occurring with quickly made Fix-Its that are just used to bridge temporary API changes and that often are not worth implementing a proper API fixup in addition to the diagnostic. To still give some kind of reasonable user-experience for users that have these Fix-Its and rely on them to fix their expressions, this patch adds the ability to retry parsing with applied Fix-Its multiple time to give the normal Fix-It experience where things Clang knows how to fix are not causing actual expression error (at least when automatically applying Fix-Its is activated).
The way this is implemented is just by having another setting in the expression options that specify how often we should try applying Fix-Its and then reparse the expression. The default setting is still 1 for everyone so this should not affect the speed in which we fail to parse expressions.
Reviewers: jingham, JDevlieghere, friss, shafik
Reviewed By: shafik
Subscribers: shafik, abidh
Differential Revision: https://reviews.llvm.org/D77214
show more ...
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5 |
|
| #
1893065d |
| 18-Mar-2020 |
Jim Ingham <[email protected]> |
Allow the ThreadPlanStackMap to hold the thread plans for threads that were not reported by the OS plugin. To facilitate this, move adding/updating the ThreadPlans for a Thread to the ThreadPlanStac
Allow the ThreadPlanStackMap to hold the thread plans for threads that were not reported by the OS plugin. To facilitate this, move adding/updating the ThreadPlans for a Thread to the ThreadPlanStackMap. Also move dumping thread plans there as well.
Added some tests for "thread plan list" and "thread plan discard" since I didn't seem to have written any originally.
Differential Revision: https://reviews.llvm.org/D76814
show more ...
|
| #
b4a6e63e |
| 20-Mar-2020 |
Fred Riss <[email protected]> |
[lldb/Target] Rework the way the inferior environment is created
Summary: The interactions between the environment settings (`target.env-vars`, `target.inherit-env`) and the inferior life-cycle are
[lldb/Target] Rework the way the inferior environment is created
Summary: The interactions between the environment settings (`target.env-vars`, `target.inherit-env`) and the inferior life-cycle are non-obvious today. For example, if `target.inherit-env` is set, the `target.env-vars` setting will be augmented with the contents of the host environment the first time the launch environment is queried (usually at launch). After that point, toggling `target.inherit-env` will have no effect as there's no tracking of what comes from the host and what is a user setting.
This patch computes the environment every time it is queried rather than updating the contents of the `target.env-vars` property. This means that toggling the `target.inherit-env` property later will now have the intended effect.
This patch also adds a `target.unset-env-vars` settings that one can use to remove variables from the launch environment. Using this, you can inherit all but a few of the host environment.
The way the launch environment is constructed is: 1/ if `target.inherit-env` is set, then read the host environment into the launch environment. 2/ Remove for the environment the variables listed in `target.unset-env`. 3/ Augment the launch environment with the contents of `target.env-vars`. This overrides any common values with the host environment.
The one functional difference here that could be seen as a regression is that `target.env-vars` will not contain the inferior environment after launch. The patch implements a better alternative in the `target show-launch-environment` command which will return the environment computed through the above rules.
Reviewers: labath, jingham
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D76470
show more ...
|