Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
#
d9cc37fe |
| 20-Dec-2024 |
Adrian Prantl <aprantl@apple.com> |
[lldb] Expose structured errors in SBError (#120784)
Building on top of previous work that exposed expression diagnostics via
SBCommandReturnObject, this patch generalizes the support to expose any
[lldb] Expose structured errors in SBError (#120784)
Building on top of previous work that exposed expression diagnostics via
SBCommandReturnObject, this patch generalizes the support to expose any
SBError as machine-readable structured data. One use-case of this is to
allow IDEs to better visualize expression diagnostics.
rdar://139997604
show more ...
|
Revision tags: llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4 |
|
#
79178ca6 |
| 02-Nov-2024 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb] Highlight "note:" in CommandReturnObject (#114610)
We have helpers to emit warnings and errors. Do the same thing for notes
to they stand out more.
|
Revision tags: llvmorg-19.1.3, llvmorg-19.1.2 |
|
#
9eddc8b9 |
| 14-Oct-2024 |
Adrian Prantl <aprantl@apple.com> |
[lldb] Expose structured command diagnostics via the SBAPI. (#112109)
This allows IDEs to render LLDB expression diagnostics to their liking
without relying on characterprecise ASCII art from LLDB.
[lldb] Expose structured command diagnostics via the SBAPI. (#112109)
This allows IDEs to render LLDB expression diagnostics to their liking
without relying on characterprecise ASCII art from LLDB. It is exposed
as a versioned SBStructuredData object, since it is expected that this
may need to be tweaked based on actual usage.
show more ...
|
#
c2750807 |
| 12-Oct-2024 |
Adrian Prantl <aprantl@apple.com> |
[lldb] Rename CommandReturnObject::Get.*Data -> Get.*String (#112062)
In a later commit, I want to add a method to access diagnostics as
actual structured data, which will make these function names
[lldb] Rename CommandReturnObject::Get.*Data -> Get.*String (#112062)
In a later commit, I want to add a method to access diagnostics as
actual structured data, which will make these function names rather
confusing.
show more ...
|
#
089227fe |
| 11-Oct-2024 |
Adrian Prantl <aprantl@apple.com> |
Support inline diagnostics in CommandReturnObject (#110901)
and implement them for dwim-print (a.k.a. `p`) as an example.
The next step will be to expose them as structured data in
SBCommandRetu
Support inline diagnostics in CommandReturnObject (#110901)
and implement them for dwim-print (a.k.a. `p`) as an example.
The next step will be to expose them as structured data in
SBCommandReturnObject.
show more ...
|
#
8789c966 |
| 02-Oct-2024 |
Adrian Prantl <aprantl@apple.com> |
[lldb] Unify implementation of CommandReturnObject::SetError(NFC) (#110707)
This is a cleanup that moves the API towards value semantics.
|
Revision tags: 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 |
|
#
133c3eaa |
| 09-Jun-2023 |
Adrian Prantl <aprantl@apple.com> |
Streamline expression parser error messages.
Currently the expression parser prints a mostly useless generic error before printing the compiler error:
(lldb) p 1+x) error: expression failed to
Streamline expression parser error messages.
Currently the expression parser prints a mostly useless generic error before printing the compiler error:
(lldb) p 1+x) error: expression failed to parse: error: <user expression 18>:1:3: use of undeclared identifier 'x' 1+x) ^
This is distracting and as far as I can tell only exists to work around the fact that the first "error: " is unconditionally injected by CommandReturnObject. The solution is not very elegant, but the result looks much better.
(Partially addresses rdar://110492710)
Differential Revision: https://reviews.llvm.org/D152590
show more ...
|
Revision tags: 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, working, 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, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2 |
|
#
af91446a |
| 14-Apr-2022 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb] Show the DBGError if dsymForUUID can't find a dSYM
Show the user the DBGError (if available) when dsymForUUID fails.
rdar://90949180
Differential revision: https://reviews.llvm.org/D123743
|
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 |
|
#
2a6dbedf |
| 23-Feb-2022 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb] Fix (unintentional) recursion in CommandObjectRegexCommand
Jim noticed that the regex command is unintentionally recursive. Let's use the following command regex as an example:
(lldb) com
[lldb] Fix (unintentional) recursion in CommandObjectRegexCommand
Jim noticed that the regex command is unintentionally recursive. Let's use the following command regex as an example:
(lldb) com regex humm 's/([^ ]+) ([^ ]+)/p %1 %2 %1 %2/'
If we call it with arguments foo bar, thing behave as expected:
(lldb) humm foo bar (...) foo bar foo bar
However, if we include %2 in the arguments, things break down:
(lldb) humm fo%2o bar (...) fobaro bar fobaro bar
The problem is that the implementation of the substitution is too naive. It substitutes the %1 token into the target template in place, then does the %2 substitution starting with the resultant string. So if the previous substitution introduced a %2 token, it would get processed in the second sweep, etc.
This patch addresses the issue by walking the command once and substituting the % variables in place.
(lldb) humm fo%2o bar (...) fo%2o bar fo%2o bar
Furthermore, this patch also reports an error if not enough variables were provided and add support for substituting %0.
rdar://81236994
Differential revision: https://reviews.llvm.org/D120101
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 |
|
#
fddedcae |
| 03-Dec-2021 |
Jordan Rupprecht <rupprecht@google.com> |
[NFC] const-ify some methods on CommandReturnObject
|
Revision tags: llvmorg-13.0.1-rc1, 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 |
|
#
fe63db25 |
| 23-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
[lldb] Remove asserts in CommandReturnObject SetError and AppendError
I added asserts to these in https://reviews.llvm.org/D104525. They are available (directly or otherwise) via the API so we shoul
[lldb] Remove asserts in CommandReturnObject SetError and AppendError
I added asserts to these in https://reviews.llvm.org/D104525. They are available (directly or otherwise) via the API so we should not assert.
Restore the previous behaviour. If the message is empty, we return early before printing anything. For SetError don't assert that the error is a failure.
The remaining assert is in AppendRawError which is not part of the API.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D104778
show more ...
|
#
1b1c8e4a |
| 22-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
[lldb] Remove CommandReturnObject's SetError(StringRef)
Replacing existing uses with AppendError.
SetError is also part of the SBI API. This remains but instead of calling the underlying SetError i
[lldb] Remove CommandReturnObject's SetError(StringRef)
Replacing existing uses with AppendError.
SetError is also part of the SBI API. This remains but instead of calling the underlying SetError it will call AppendError.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D104768
show more ...
|
#
12ae3cb7 |
| 18-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
[lldb] Assert that CommandResultObject error messages are not empty
The intention is now that AppendError/SetError/AppendRawError only be called with some message to show. This enforces that.
For S
[lldb] Assert that CommandResultObject error messages are not empty
The intention is now that AppendError/SetError/AppendRawError only be called with some message to show. This enforces that.
For SetError with a Status and a fallback string first assert that the Status is a failure Status. Then it calls SetError(StringRef) which checks the message is valid. (which could be the fallback or the Status')
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D104525
show more ...
|
Revision tags: llvmorg-12.0.1-rc2 |
|
#
983ed1b5 |
| 16-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
[lldb] Set return object failed status even if error string is empty
The idea is now that AppendError<...> will set eReturnStatusFailed for you so you don't have to call SetStatus again.
Previously
[lldb] Set return object failed status even if error string is empty
The idea is now that AppendError<...> will set eReturnStatusFailed for you so you don't have to call SetStatus again.
Previously if the error message was empty, the status wouldn't be set.
I don't think there are any sitautions where the message is in fact empty but it potentially could be depending on where we get the string from.
So let's set the status up front then return early if the message is empty.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D104380
show more ...
|
#
31b9acae |
| 14-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
Reland "[lldb] Set return status to failed when adding a command error"
This reverts commit ac031c8db2ce454a9b08f23192ce698e8bde4447.
SB API usage has been corrected.
|
#
ac031c8d |
| 14-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
Revert "[lldb] Set return status to failed when adding a command error" (and fixups)
This reverts commit f583029da3d6dbabe82f48b160227eb0120abd33, 0f94d68a2e15d50796439f20bcb508b95931d2ae and a2363c
Revert "[lldb] Set return status to failed when adding a command error" (and fixups)
This reverts commit f583029da3d6dbabe82f48b160227eb0120abd33, 0f94d68a2e15d50796439f20bcb508b95931d2ae and a2363c0cf9b6a9a81c76ac652da667f73845d38b.
Due to test failures from incorrect SB API usage.
show more ...
|
#
a2363c0c |
| 14-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
Reland "[lldb] Set return status to failed when adding a command error"
This reverts commit db93e4e70aa453e5ba04ba0d9e01f581882b6c81.
This modifies TestRegsters.py to account for Darwin showing AVX
Reland "[lldb] Set return status to failed when adding a command error"
This reverts commit db93e4e70aa453e5ba04ba0d9e01f581882b6c81.
This modifies TestRegsters.py to account for Darwin showing AVX registers as part of "Floating Point Registers" instead of in a separate "Advanced Vector Extensions" category.
show more ...
|
#
db93e4e7 |
| 09-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
Revert "[lldb] Set return status to failed when adding a command error"
This reverts commit e05b03cf4f45ac5ee63c59a3464e7d484884645c.
While I investigate a register test failure: http://green.lab.l
Revert "[lldb] Set return status to failed when adding a command error"
This reverts commit e05b03cf4f45ac5ee63c59a3464e7d484884645c.
While I investigate a register test failure: http://green.lab.llvm.org/green/blue/organizations/jenkins/lldb-cmake/detail/lldb-cmake/32693/pipeline/
show more ...
|
#
1a216fb1 |
| 08-Jun-2021 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb] Don't print script output twice in HandleCommand
When executing a script command in HandleCommand(s) we currently print its output twice You can see this issue in action when adding a breakpo
[lldb] Don't print script output twice in HandleCommand
When executing a script command in HandleCommand(s) we currently print its output twice You can see this issue in action when adding a breakpoint command:
(lldb) b main Breakpoint 1: where = main.out`main + 13 at main.cpp:2:3, address = 0x0000000100003fad (lldb) break command add 1 -o "script print(\"Hey!\")" (lldb) r Process 76041 launched: '/tmp/main.out' (x86_64) Hey! (lldb) script print("Hey!") Hey! Process 76041 stopped
The issue is caused by HandleCommands using a temporary CommandReturnObject and one of the commands (`script` in this case) setting an immediate output stream. This causes the result to be printed twice: once directly to the immediate output stream and once when printing the result of HandleCommands.
This patch fixes the issue by introducing a new option to suppress immediate output for temporary CommandReturnObjects.
Differential revision: https://reviews.llvm.org/D103349
show more ...
|
#
e05b03cf |
| 04-Jun-2021 |
David Spickett <david.spickett@linaro.org> |
[lldb] Set return status to failed when adding a command error
There is a common pattern: result.AppendError(...); result.SetStatus(eReturnStatusFailed);
I found that some commands don't actually "
[lldb] Set return status to failed when adding a command error
There is a common pattern: result.AppendError(...); result.SetStatus(eReturnStatusFailed);
I found that some commands don't actually "fail" but only print "error: ..." because the second line got missed.
This can cause you to miss a failed command when you're using the Python interface during testing. (and produce some confusing script results)
I did not find any place where you would want to add an error without setting the return status, so just set eReturnStatusFailed whenever you add an error to a command result.
This change does not remove any of the now redundant SetStatus. This should allow us to see if there are any tests that have commands unexpectedly fail with this change. (the test suite passes for me but I don't have access to all the systems we cover so there could be some corner cases)
Some tests that failed on x86 and AArch64 have been modified to work with the new behaviour.
Differential Revision: https://reviews.llvm.org/D103701
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 |
|
#
54d03a49 |
| 18-Feb-2021 |
Tatyana Krasnukha <tatyana@synopsys.com> |
[lldb/Interpreter][NFC] Replace default constructors/destructors bodies with "=default"
|
#
6201017d |
| 24-Feb-2021 |
Raphael Isemann <teemperor@gmail.com> |
[lldb] Prevent double new lines behind errors/warning/messages from LLDB commands
The current API for printing errors/warnings/messages from LLDB commands sometimes adds newlines behind the messages
[lldb] Prevent double new lines behind errors/warning/messages from LLDB commands
The current API for printing errors/warnings/messages from LLDB commands sometimes adds newlines behind the messages for the caller. However, this happens unconditionally so when the caller already specified a trailing newline in the error message (or is trying to print a generated error message that ends in a newline), LLDB ends up printing both the automatically added newline and the one that was in the error message string. This leads to all the randomly appearing new lines in error such as:
``` (lldb) command a error: 'command alias' requires at least two arguments (lldb) apropos a b error: 'apropos' must be called with exactly one argument.
(lldb) why is there an empty line behind the second error? ```
This code adds a check that only appends the new line if the passed message doesn't already contain a trailing new line.
Also removes the AppendRawWarning which had only one caller and doesn't serve any purpose now.
Reviewed By: #lldb, mib
Differential Revision: https://reviews.llvm.org/D96947
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, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, 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, 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 |
|
#
de019b88 |
| 09-Jun-2020 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb/Interpreter] Support color in CommandReturnObject
Color the error: and warning: part of the CommandReturnObject output, similar to how an error is printed from the driver when colors are enabl
[lldb/Interpreter] Support color in CommandReturnObject
Color the error: and warning: part of the CommandReturnObject output, similar to how an error is printed from the driver when colors are enabled.
Differential revision: https://reviews.llvm.org/D81058
show more ...
|
#
def72b91 |
| 03-Jun-2020 |
Jonas Devlieghere <jonas@devlieghere.com> |
[lldb/Interpreter] Remove redundant argument (NFC)
|
Revision tags: 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 |
|
#
adcd0268 |
| 28-Jan-2020 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make llvm::StringRef to std::string conversions explicit.
This is how it should've been and brings it more in line with std::string_view. There should be no functional change here.
This is mostly m
Make llvm::StringRef to std::string conversions explicit.
This is how it should've been and brings it more in line with std::string_view. There should be no functional change here.
This is mostly mechanical from a custom clang-tidy check, with a lot of manual fixups. It uncovers a lot of minor inefficiencies.
This doesn't actually modify StringRef yet, I'll do that in a follow-up.
show more ...
|