mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 23:26:04 +00:00

This patch does several things: First, it refactors the `CommandObject{,Platform}ProcessObject` command option class into a separate `CommandOptionsProcessAttach` option group. This will make sure both the `platform process attach` and `process attach` command options will always stay in sync without having with duplicate them each time. But more importantly, making this class an `OptionGroup` allows us to combine with a `OptionGroupPythonClassWithDict` to add support for the scripted process managing class name and user-provided dictionary options. This patch also improves feature parity between `ProcessLaunchInfo` and `ProcessAttachInfo` with regard to ScriptedProcesses, by exposing the various getters and setters necessary to use them through the SBAPI. This is foundation work for adding support to "attach" to a process from the scripted platform. Differential Revision: https://reviews.llvm.org/D139945 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
//===-- CommandOptionsProcessAttach.h ---------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSATTACH_H
|
|
#define LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSATTACH_H
|
|
|
|
#include "lldb/Interpreter/Options.h"
|
|
#include "lldb/Target/Process.h"
|
|
|
|
namespace lldb_private {
|
|
|
|
// CommandOptionsProcessAttach
|
|
|
|
class CommandOptionsProcessAttach : public lldb_private::OptionGroup {
|
|
public:
|
|
CommandOptionsProcessAttach() {
|
|
// Keep default values of all options in one place: OptionParsingStarting
|
|
// ()
|
|
OptionParsingStarting(nullptr);
|
|
}
|
|
|
|
~CommandOptionsProcessAttach() override = default;
|
|
|
|
lldb_private::Status
|
|
SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg,
|
|
lldb_private::ExecutionContext *execution_context) override;
|
|
|
|
void OptionParsingStarting(
|
|
lldb_private::ExecutionContext *execution_context) override {
|
|
attach_info.Clear();
|
|
}
|
|
|
|
llvm::ArrayRef<lldb_private::OptionDefinition> GetDefinitions() override;
|
|
|
|
// Instance variables to hold the values for command options.
|
|
|
|
lldb_private::ProcessAttachInfo attach_info;
|
|
}; // CommandOptionsProcessAttach
|
|
|
|
} // namespace lldb_private
|
|
|
|
#endif // LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSATTACH_H
|