CommandObjectDisassemble.h revision 24943d2ee8bfaa7cf5893e4709143924157a5c1e
1//===-- CommandObjectDisassemble.h ------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef liblldb_CommandObjectDisassemble_h_ 11#define liblldb_CommandObjectDisassemble_h_ 12 13// C Includes 14// C++ Includes 15// Other libraries and framework includes 16// Project includes 17#include "lldb/Interpreter/CommandObject.h" 18#include "lldb/Core/Options.h" 19 20namespace lldb_private { 21 22//------------------------------------------------------------------------- 23// CommandObjectDisassemble 24//------------------------------------------------------------------------- 25 26class CommandObjectDisassemble : public CommandObject 27{ 28public: 29 class CommandOptions : public Options 30 { 31 public: 32 33 CommandOptions (); 34 35 virtual 36 ~CommandOptions (); 37 38 virtual Error 39 SetOptionValue (int option_idx, const char *option_arg); 40 41 void 42 ResetOptionValues (); 43 44 const lldb::OptionDefinition* 45 GetDefinitions (); 46 47 bool show_mixed; // Show mixed source/assembly 48 bool show_bytes; 49 uint32_t num_lines_context; 50 bool raw; 51 std::string m_func_name; 52 lldb::addr_t m_load_addr; 53 static lldb::OptionDefinition g_option_table[]; 54 }; 55 56 CommandObjectDisassemble (); 57 58 virtual 59 ~CommandObjectDisassemble (); 60 61 virtual 62 Options * 63 GetOptions () 64 { 65 return &m_options; 66 } 67 68 virtual bool 69 Execute (Args& command, 70 CommandContext *context, 71 CommandInterpreter *interpreter, 72 CommandReturnObject &result); 73 74protected: 75 CommandOptions m_options; 76 77 void 78 Disassemble (CommandContext *context, 79 CommandInterpreter *interpreter, 80 CommandReturnObject &result, 81 Disassembler *disassembler, 82 lldb::addr_t addr, 83 lldb::addr_t end_addr); 84 85 void 86 Disassemble (CommandContext *context, 87 CommandInterpreter *interpreter, 88 CommandReturnObject &result, 89 Disassembler *disassembler, 90 const SymbolContextList &sc_list); 91}; 92 93} // namespace lldb_private 94 95#endif // liblldb_CommandObjectDisassemble_h_ 96