CommandObjectDisassemble.h revision 704363531ee4877ccc6d35d0702876096f54c67b
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/Interpreter/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_start_addr;
53        lldb::addr_t m_end_addr;
54        static lldb::OptionDefinition g_option_table[];
55    };
56
57    CommandObjectDisassemble ();
58
59    virtual
60    ~CommandObjectDisassemble ();
61
62    virtual
63    Options *
64    GetOptions ()
65    {
66        return &m_options;
67    }
68
69    virtual bool
70    Execute (CommandInterpreter &interpreter,
71             Args& command,
72             CommandReturnObject &result);
73
74protected:
75    CommandOptions m_options;
76
77};
78
79} // namespace lldb_private
80
81#endif  // liblldb_CommandObjectDisassemble_h_
82