Execute which was never going to get run and another ExecuteRawCommandString. Took the knowledge of how to prepare raw & parsed commands out of CommandInterpreter and put it in CommandObject where it belongs. Also took all the cases where there were the subcommands of Multiword commands declared in the .h file for the overall command and moved them into the .cpp file. Made the CommandObject flags work for raw as well as parsed commands. Made "expr" use the flags so that it requires you to be paused to run "expr". llvm-svn: 158235
100 lines
2.5 KiB
C++
100 lines
2.5 KiB
C++
//===-- CommandObjectDisassemble.h ------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef liblldb_CommandObjectDisassemble_h_
|
|
#define liblldb_CommandObjectDisassemble_h_
|
|
|
|
// C Includes
|
|
// C++ Includes
|
|
// Other libraries and framework includes
|
|
// Project includes
|
|
#include "lldb/Interpreter/CommandObject.h"
|
|
#include "lldb/Interpreter/Options.h"
|
|
|
|
namespace lldb_private {
|
|
|
|
//-------------------------------------------------------------------------
|
|
// CommandObjectDisassemble
|
|
//-------------------------------------------------------------------------
|
|
|
|
class CommandObjectDisassemble : public CommandObjectParsed
|
|
{
|
|
public:
|
|
class CommandOptions : public Options
|
|
{
|
|
public:
|
|
|
|
CommandOptions (CommandInterpreter &interpreter);
|
|
|
|
virtual
|
|
~CommandOptions ();
|
|
|
|
virtual Error
|
|
SetOptionValue (uint32_t option_idx, const char *option_arg);
|
|
|
|
void
|
|
OptionParsingStarting ();
|
|
|
|
const OptionDefinition*
|
|
GetDefinitions ();
|
|
|
|
const char *
|
|
GetPluginName ()
|
|
{
|
|
if (plugin_name.empty())
|
|
return NULL;
|
|
return plugin_name.c_str();
|
|
}
|
|
|
|
virtual Error
|
|
OptionParsingFinished ();
|
|
|
|
bool show_mixed; // Show mixed source/assembly
|
|
bool show_bytes;
|
|
uint32_t num_lines_context;
|
|
uint32_t num_instructions;
|
|
bool raw;
|
|
std::string func_name;
|
|
bool cur_function;
|
|
lldb::addr_t start_addr;
|
|
lldb::addr_t end_addr;
|
|
bool at_pc;
|
|
bool frame_line;
|
|
std::string plugin_name;
|
|
ArchSpec arch;
|
|
bool some_location_specified; // If no location was specified, we'll select "at_pc". This should be set
|
|
// in SetOptionValue if anything the selects a location is set.
|
|
static OptionDefinition g_option_table[];
|
|
};
|
|
|
|
CommandObjectDisassemble (CommandInterpreter &interpreter);
|
|
|
|
virtual
|
|
~CommandObjectDisassemble ();
|
|
|
|
virtual
|
|
Options *
|
|
GetOptions ()
|
|
{
|
|
return &m_options;
|
|
}
|
|
|
|
protected:
|
|
virtual bool
|
|
DoExecute (Args& command,
|
|
CommandReturnObject &result);
|
|
|
|
CommandOptions m_options;
|
|
|
|
};
|
|
|
|
} // namespace lldb_private
|
|
|
|
#endif // liblldb_CommandObjectDisassemble_h_
|