CommandObjectDisassemble.h revision da26bd203cbb104291b39891febf7481794f205f
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===-- CommandObjectDisassemble.h ------------------------------*- C++ -*-===// 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The LLVM Compiler Infrastructure 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// License. See LICENSE.TXT for details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef liblldb_CommandObjectDisassemble_h_ 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define liblldb_CommandObjectDisassemble_h_ 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// C Includes 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// C++ Includes 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Other libraries and framework includes 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Project includes 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "lldb/Interpreter/CommandObject.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "lldb/Interpreter/Options.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace lldb_private { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//------------------------------------------------------------------------- 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CommandObjectDisassemble 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//------------------------------------------------------------------------- 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CommandObjectDisassemble : public CommandObjectParsed 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public: 29 class CommandOptions : public Options 30 { 31 public: 32 33 CommandOptions (CommandInterpreter &interpreter); 34 35 virtual 36 ~CommandOptions (); 37 38 virtual Error 39 SetOptionValue (uint32_t option_idx, const char *option_arg); 40 41 void 42 OptionParsingStarting (); 43 44 const OptionDefinition* 45 GetDefinitions (); 46 47 const char * 48 GetPluginName () 49 { 50 if (plugin_name.empty()) 51 return NULL; 52 return plugin_name.c_str(); 53 } 54 55 virtual Error 56 OptionParsingFinished (); 57 58 bool show_mixed; // Show mixed source/assembly 59 bool show_bytes; 60 uint32_t num_lines_context; 61 uint32_t num_instructions; 62 bool raw; 63 std::string func_name; 64 bool cur_function; 65 lldb::addr_t start_addr; 66 lldb::addr_t end_addr; 67 bool at_pc; 68 bool frame_line; 69 std::string plugin_name; 70 ArchSpec arch; 71 bool some_location_specified; // If no location was specified, we'll select "at_pc". This should be set 72 // in SetOptionValue if anything the selects a location is set. 73 static OptionDefinition g_option_table[]; 74 }; 75 76 CommandObjectDisassemble (CommandInterpreter &interpreter); 77 78 virtual 79 ~CommandObjectDisassemble (); 80 81 virtual 82 Options * 83 GetOptions () 84 { 85 return &m_options; 86 } 87 88protected: 89 virtual bool 90 DoExecute (Args& command, 91 CommandReturnObject &result); 92 93 CommandOptions m_options; 94 95}; 96 97} // namespace lldb_private 98 99#endif // liblldb_CommandObjectDisassemble_h_ 100