13e0ad115SMed Ismail Bennani //===-- CommandOptionsProcessLaunch.h ---------------------------*- C++ -*-===// 27169d3a3SMed Ismail Bennani // 37169d3a3SMed Ismail Bennani // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 47169d3a3SMed Ismail Bennani // See https://llvm.org/LICENSE.txt for license information. 57169d3a3SMed Ismail Bennani // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 67169d3a3SMed Ismail Bennani // 77169d3a3SMed Ismail Bennani //===----------------------------------------------------------------------===// 87169d3a3SMed Ismail Bennani 97169d3a3SMed Ismail Bennani #ifndef LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSLAUNCH_H 107169d3a3SMed Ismail Bennani #define LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSLAUNCH_H 117169d3a3SMed Ismail Bennani 127169d3a3SMed Ismail Bennani #include "lldb/Host/ProcessLaunchInfo.h" 137169d3a3SMed Ismail Bennani #include "lldb/Interpreter/Options.h" 147169d3a3SMed Ismail Bennani 157169d3a3SMed Ismail Bennani namespace lldb_private { 167169d3a3SMed Ismail Bennani 177169d3a3SMed Ismail Bennani // CommandOptionsProcessLaunch 187169d3a3SMed Ismail Bennani 193e0ad115SMed Ismail Bennani class CommandOptionsProcessLaunch : public lldb_private::OptionGroup { 207169d3a3SMed Ismail Bennani public: CommandOptionsProcessLaunch()21*abb0ed44SKazu Hirata CommandOptionsProcessLaunch() { 227169d3a3SMed Ismail Bennani // Keep default values of all options in one place: OptionParsingStarting 237169d3a3SMed Ismail Bennani // () 247169d3a3SMed Ismail Bennani OptionParsingStarting(nullptr); 257169d3a3SMed Ismail Bennani } 267169d3a3SMed Ismail Bennani 277169d3a3SMed Ismail Bennani ~CommandOptionsProcessLaunch() override = default; 287169d3a3SMed Ismail Bennani 297169d3a3SMed Ismail Bennani lldb_private::Status 307169d3a3SMed Ismail Bennani SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg, 317169d3a3SMed Ismail Bennani lldb_private::ExecutionContext *execution_context) override; 327169d3a3SMed Ismail Bennani OptionParsingStarting(lldb_private::ExecutionContext * execution_context)337169d3a3SMed Ismail Bennani void OptionParsingStarting( 347169d3a3SMed Ismail Bennani lldb_private::ExecutionContext *execution_context) override { 357169d3a3SMed Ismail Bennani launch_info.Clear(); 367169d3a3SMed Ismail Bennani disable_aslr = lldb_private::eLazyBoolCalculate; 377169d3a3SMed Ismail Bennani } 387169d3a3SMed Ismail Bennani 397169d3a3SMed Ismail Bennani llvm::ArrayRef<lldb_private::OptionDefinition> GetDefinitions() override; 407169d3a3SMed Ismail Bennani 417169d3a3SMed Ismail Bennani // Instance variables to hold the values for command options. 427169d3a3SMed Ismail Bennani 437169d3a3SMed Ismail Bennani lldb_private::ProcessLaunchInfo launch_info; 447169d3a3SMed Ismail Bennani lldb_private::LazyBool disable_aslr; 457169d3a3SMed Ismail Bennani }; // CommandOptionsProcessLaunch 467169d3a3SMed Ismail Bennani 47901ea296SPavel Labath } // namespace lldb_private 487169d3a3SMed Ismail Bennani 497169d3a3SMed Ismail Bennani #endif // LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSLAUNCH_H 50