diff options
Diffstat (limited to 'lldb/source/Commands/CommandObjectDisassemble.h')
-rw-r--r-- | lldb/source/Commands/CommandObjectDisassemble.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/lldb/source/Commands/CommandObjectDisassemble.h b/lldb/source/Commands/CommandObjectDisassemble.h new file mode 100644 index 00000000000..2cf800d2f59 --- /dev/null +++ b/lldb/source/Commands/CommandObjectDisassemble.h @@ -0,0 +1,95 @@ +//===-- 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/Core/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 lldb::OptionDefinition* + GetDefinitions (); + + bool show_mixed; // Show mixed source/assembly + bool show_bytes; + uint32_t num_lines_context; + bool raw; + std::string m_func_name; + lldb::addr_t m_load_addr; + static lldb::OptionDefinition g_option_table[]; + }; + + CommandObjectDisassemble (); + + virtual + ~CommandObjectDisassemble (); + + virtual + Options * + GetOptions () + { + return &m_options; + } + + virtual bool + Execute (Args& command, + CommandContext *context, + CommandInterpreter *interpreter, + CommandReturnObject &result); + +protected: + CommandOptions m_options; + + void + Disassemble (CommandContext *context, + CommandInterpreter *interpreter, + CommandReturnObject &result, + Disassembler *disassembler, + lldb::addr_t addr, + lldb::addr_t end_addr); + + void + Disassemble (CommandContext *context, + CommandInterpreter *interpreter, + CommandReturnObject &result, + Disassembler *disassembler, + const SymbolContextList &sc_list); +}; + +} // namespace lldb_private + +#endif // liblldb_CommandObjectDisassemble_h_ |