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