summaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandOptionsProcessLaunch.cpp
AgeCommit message (Collapse)Author
2024-08-27[lldb] Turn lldb_private::Status into a value type. (#106163)Adrian Prantl
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.
2023-10-09[lldb] add stop-at-user-entry option to process launch (#67019)José Lira Junior
## Description This pull request adds a new `stop-at-user-entry` option to LLDB `process launch` command, allowing users to launch a process and pause execution at the entry point of the program (for C-based languages, `main` function). ## Motivation This option provides a convenient way to begin debugging a program by launching it and breaking at the desired entry point. ## Changes Made - Added `stop-at-user-entry` option to `Options.td` and the corresponding case in `CommandOptionsProcessLaunch.cpp` (short option is 'm') - Implemented `GetUserEntryPointName` method in the Language plugins available at the moment. - Declared the `CreateBreakpointAtUserEntry` method in the Target API. - Create Shell test for the command `command-process-launch-user-entry.test`. ## Usage `process launch --stop-at-user-entry` or `process launch -m` launches the process and pauses execution at the entry point of the program.
2023-01-10Move from llvm::makeArrayRef to ArrayRef deduction guides - last partserge-sans-paille
This is a follow-up to https://reviews.llvm.org/D140896, split into several parts as it touches a lot of files. Differential Revision: https://reviews.llvm.org/D141298
2022-07-14[lldb] Refactor command option enum values (NFC)Jonas Devlieghere
Refactor the command option enum values and the command argument table to connect the two. This has two benefits: - We guarantee that two options that use the same argument type have the same accepted values. - We can print the enum values and their description in the help output. (D129707) Differential revision: https://reviews.llvm.org/D129703
2021-03-23[lldb/Commands] Add command options for ScriptedProcess to ProcessLaunchMed Ismail Bennani
This patch adds a new command options to the CommandObjectProcessLaunch for scripted processes. Among the options, the user need to specify the class name managing the scripted process. The user can also use a key-value dictionary holding arbitrary data that will be passed to the managing class. This patch also adds getters and setters to `SBLaunchInfo` for the class name managing the scripted process and the dictionary. rdar://65508855 Differential Review: https://reviews.llvm.org/D95710 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2021-03-01[lldb] Revert ScriptedProcess patchesMed Ismail Bennani
This patch reverts the following commits: - 5a9c34918bb1526b7e8c29aa5e4fb8d8e27e27b4 - 46796762afe76496ec4dd900f64d0cf4cdc30e99 - 2cff3dec1171188ce04ab1a4373cc1885ab97be1 - 182f0d1a34419445bb19d67581d6ac1afc98b7fa - d62a53aaf1d38a55d1affbd3a30d564a4e9d3171 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2021-03-01[lldb/Commands] Add command options for ScriptedProcess to ProcessLaunchMed Ismail Bennani
This patch adds a new command options to the CommandObjectProcessLaunch for scripted processes. Among the options, the user need to specify the class name managing the scripted process. The user can also use a key-value dictionary holding arbitrary data that will be passed to the managing class. This patch also adds getters and setters to `SBLaunchInfo` for the class name managing the scripted process and the dictionary. rdar://65508855 Differential Review: https://reviews.llvm.org/D95710 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2021-03-01[lldb/Commands] Fix short option collision for `process launch`Med Ismail Bennani
This patch changes the short option used in `CommandOptionsProcessLaunch` for the `-v|--environment` command option to `-E|--environment`. The reason for that is, that it collides with the `-v|--structured-data-value` command option generated by `OptionGroupPythonClassWithDict` that I'm using in an upcoming patch for the `process launch` command. The long option `--environment` remains the same. Differential Review: https://reviews.llvm.org/D95100 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2021-01-20[lldb/Commands] Align process launch --plugin with process attach (NFC)Med Ismail Bennani
Following `7169d3a315f4cdc19c4ab6b8f20c6f91b46ba9b8`, this patch updates the short option for the plugin command option to (`-p` to `-P`) to align with the `process attach` command options. The long option remains the same since there are already the same for both commands. Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2021-01-20[lldb/Commands] Refactor ProcessLaunchCommandOptions to use TableGen (NFC)Med Ismail Bennani
This patch refactors the current implementation of `ProcessLaunchCommandOptions` to be generated by TableGen. The patch also renames the class to `CommandOptionsProcessLaunch` to align better with the rest of the codebase style and moves it to separate files. Differential Review: https://reviews.llvm.org/D95059 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>