mirror of
https://github.com/intel/llvm.git
synced 2026-01-27 06:06:34 +08:00
plugin by name on the command line for when there is more than one disassembler plugin. Taught the Opcode class to dump itself so that "disassembler -b" will dump the bytes correctly for each opcode type. Modified all places that were passing the opcode bytes buffer in so that the bytes could be displayed to just pass in a bool that indicates if we should dump the opcode bytes since the opcode now lives inside llvm_private::Instruction. llvm-svn: 128290
93 lines
2.1 KiB
C++
93 lines
2.1 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 CommandObject
|
|
{
|
|
public:
|
|
class CommandOptions : public Options
|
|
{
|
|
public:
|
|
|
|
CommandOptions ();
|
|
|
|
virtual
|
|
~CommandOptions ();
|
|
|
|
virtual Error
|
|
SetOptionValue (int option_idx, const char *option_arg);
|
|
|
|
void
|
|
ResetOptionValues ();
|
|
|
|
const OptionDefinition*
|
|
GetDefinitions ();
|
|
|
|
const char *
|
|
GetPluginName ()
|
|
{
|
|
if (m_plugin_name.empty())
|
|
return NULL;
|
|
return m_plugin_name.c_str();
|
|
}
|
|
|
|
|
|
bool show_mixed; // Show mixed source/assembly
|
|
bool show_bytes;
|
|
uint32_t num_lines_context;
|
|
uint32_t num_instructions;
|
|
bool raw;
|
|
std::string m_func_name;
|
|
lldb::addr_t m_start_addr;
|
|
lldb::addr_t m_end_addr;
|
|
bool m_at_pc;
|
|
std::string m_plugin_name;
|
|
static OptionDefinition g_option_table[];
|
|
};
|
|
|
|
CommandObjectDisassemble (CommandInterpreter &interpreter);
|
|
|
|
virtual
|
|
~CommandObjectDisassemble ();
|
|
|
|
virtual
|
|
Options *
|
|
GetOptions ()
|
|
{
|
|
return &m_options;
|
|
}
|
|
|
|
virtual bool
|
|
Execute (Args& command,
|
|
CommandReturnObject &result);
|
|
|
|
protected:
|
|
CommandOptions m_options;
|
|
|
|
};
|
|
|
|
} // namespace lldb_private
|
|
|
|
#endif // liblldb_CommandObjectDisassemble_h_
|