Go to the documentation of this file.
25 #ifndef __NMV_ASM_INSTR_H__
26 #define __NMV_ASM_INSTR_H__
29 #include <boost/variant.hpp>
34 NEMIVER_BEGIN_NAMESPACE (
nemiver)
35 NEMIVER_BEGIN_NAMESPACE (
common)
55 const string &a_offset,
56 const string &a_instr):
57 m_address (a_address),
68 const string&
address ()
const {
return m_address;}
71 const string&
function ()
const {
return m_func;}
72 void function (
const string &a_str) {m_func = a_str;}
74 const string&
offset ()
const {
return m_offset;}
75 void offset (
string &a_o) {m_offset = a_o;}
85 list<AsmInstr> m_instrs;
97 m_line_number (a_line_num)
103 list<AsmInstr> &a_instrs) :
104 m_file_path (a_path),
105 m_line_number (a_line_num),
116 const list<AsmInstr>&
instrs ()
const {
return m_instrs;}
117 list<AsmInstr>&
instrs () {
return m_instrs;}
118 void instrs (
const list<AsmInstr> &a) {m_instrs = a;}
128 boost::variant<AsmInstr, MixedAsmInstr> m_asm;
148 return static_cast<Type> (m_asm.which ());
155 const AsmInstr instr = boost::get<AsmInstr> (m_asm);
156 return instr.address ().empty ();
161 boost::get<MixedAsmInstr> (m_asm);
162 return mixed.
instrs ().empty ();
165 THROW (
"unknown asm type");
174 return boost::get<AsmInstr> (m_asm);
177 boost::get<MixedAsmInstr> (m_asm);
178 if (mixed.
instrs ().empty ()) {
180 msg <<
"mixed asm has empty instrs at "
186 return mixed.
instrs ().front ();
191 THROW (
"reached unreachable");
197 return boost::get<MixedAsmInstr> (m_asm);
206 string m_start_address;
207 string m_end_address;
230 NEMIVER_END_NAMESPACE (
common)
231 NEMIVER_END_NAMESPACE (
nemiver)
233 #endif // __NMV_ASM_INSTR_H__
Definition: nmv-asm-instr.h:201
const string & offset() const
Definition: nmv-asm-instr.h:74
Definition: nmv-address.h:31
MixedAsmInstr(const UString &a_path, int a_line_num, list< AsmInstr > &a_instrs)
Definition: nmv-asm-instr.h:101
MixedAsmInstr()
Definition: nmv-asm-instr.h:89
#define THROW(a_reason)
Definition: nmv-exception.h:99
const UString & file_path() const
Definition: nmv-asm-instr.h:110
Definition: nmv-asm-instr.h:127
void instrs(const list< AsmInstr > &a)
Definition: nmv-asm-instr.h:118
Type which() const
Definition: nmv-asm-instr.h:146
MixedAsmInstr(const UString &a_path, int a_line_num)
Definition: nmv-asm-instr.h:94
const std::string & end_address() const
Definition: nmv-asm-instr.h:226
void line_number(int a)
Definition: nmv-asm-instr.h:114
void start_address(const std::string &a)
Definition: nmv-asm-instr.h:224
Definition: nmv-ustring.h:45
AsmInstr(const string &a_address, const string &a_func, const string &a_offset, const string &a_instr)
Definition: nmv-asm-instr.h:53
const std::string & start_address() const
Definition: nmv-asm-instr.h:223
const MixedAsmInstr & mixed_instr() const
Definition: nmv-asm-instr.h:194
const list< AsmInstr > & instrs() const
Definition: nmv-asm-instr.h:116
int line_number() const
Definition: nmv-asm-instr.h:113
void file_path(const UString &a)
Definition: nmv-asm-instr.h:111
const string & address() const
Definition: nmv-asm-instr.h:68
bool empty() const
Definition: nmv-asm-instr.h:151
void address(string &a)
Definition: nmv-asm-instr.h:69
Asm(const MixedAsmInstr &a)
Definition: nmv-asm-instr.h:141
void offset(string &a_o)
Definition: nmv-asm-instr.h:75
void end_address(const std::string &a)
Definition: nmv-asm-instr.h:227
AsmInstr()
Definition: nmv-asm-instr.h:49
void instruction(const string &a_instr)
Definition: nmv-asm-instr.h:78
Definition: nmv-asm-instr.h:42
const UString & function_name() const
Definition: nmv-asm-instr.h:217
void file_name(const UString &a_name)
Definition: nmv-asm-instr.h:221
Asm(const AsmInstr &a)
Definition: nmv-asm-instr.h:136
const UString & file_name() const
Definition: nmv-asm-instr.h:220
const string & instruction() const
Definition: nmv-asm-instr.h:77
const AsmInstr & instr() const
Definition: nmv-asm-instr.h:170
void function_name(const UString &a_name)
Definition: nmv-asm-instr.h:218
virtual ~AsmInstr()
Definition: nmv-asm-instr.h:64
Type
Definition: nmv-asm-instr.h:131
~DisassembleInfo()
Definition: nmv-asm-instr.h:213
#define THROW_IF_FAIL(a_cond)
Definition: nmv-exception.h:65
DisassembleInfo()
Definition: nmv-asm-instr.h:210
Definition: nmv-proc-list-dialog.h:32
list< AsmInstr > & instrs()
Definition: nmv-asm-instr.h:117
Definition: nmv-asm-instr.h:81