[nemiver/follow-fork-mode: 19/35] Backend support for mixed src/asm disassembly
- From: Dodji Seketeli <dodji src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nemiver/follow-fork-mode: 19/35] Backend support for mixed src/asm disassembly
- Date: Thu, 6 May 2010 10:17:41 +0000 (UTC)
commit e8ebed3d9ac46a08609fef4d2d3bf15fd8b5fe10
Author: Dodji Seketeli <dodji redhat com>
Date: Sun Apr 25 12:19:27 2010 +0200
Backend support for mixed src/asm disassembly
* src/common/nmv-env.cc (CONF_KEY_GDB_BINARY): New gconf key
definition.
* src/dbgengine/nmv-i-debugger.h (IDebugger::MixedAsmInstr,
IDebugger::Asm): New type.
(many declarations): Don't use IDebugger::AsmInstr anymore, but
rather IDebugger::Asm that is a type which basically is an union
of AsmInstr and MixedAsmInstr.
(IDebugger::disassemble, IDebugger::disassemble_lines): Add a
a_pure_asm parm to discriminate between pure asm and mixed
source/asm disassembling queries.
* src/dbgengine/nmv-gdb-engine.h: Adjust.
* src/dbgengine/nmv-gdb-engine.cc (many places): Adjust to the
IDebugger::Asm usage.
(GDBEngine::disassemble, GDBEngine::disassemble_lines): Use the new
a_pure_asm parm.
* src/dbgengine/nmv-dbg-common.h: Adjust to the
IDebugger::AsmInstr -> IDebugger::Asm switch.
* src/dbgengine/nmv-gdbmi-parser.h
(GDBMIParser::analyse_pure_asm_instrs,
GDBMIParser::analyse_mixed_asm_instrs): New fns.
(GDBMIParser::parse_asm_instruction_list): Adjust to the
IDebugger::AsmInstr -> IDebugger::Asm switch.
* src/dbgengine/nmv-gdbmi-parser.cc
(GDBMIParser::analyse_pure_asm_instrs): Factorize out this from
GDBMIParser::parse_asm_instruction_list.
(GDBMIParser::analyse_mixed_asm_instrs): New fn.
(GDBMIParser::parse_result_record): Adjust to the
IDebugger::AsmInstr -> IDebugger::Asm switch.
(GDBMIParser::parse_asm_instruction_list): Likewise.
Support parsing pure /and/ mixed src/asm instructions.
* tests/test-gdbmi.cc b/tests/test-gdbmi.cc: Use the new
dbgengine/nmv-asm-utils.h.
(test_disassemble): Add a test for mixed src/asm.
src/common/nmv-env.cc | 4 +
src/dbgengine/nmv-dbg-common.h | 6 +-
src/dbgengine/nmv-gdb-engine.cc | 38 ++++--
src/dbgengine/nmv-gdb-engine.h | 6 +-
src/dbgengine/nmv-gdbmi-parser.cc | 218 ++++++++++++++++++++++++++++++-------
src/dbgengine/nmv-gdbmi-parser.h | 18 ++-
src/dbgengine/nmv-i-debugger.h | 110 +++++++++++++++++--
tests/test-gdbmi.cc | 14 ++-
8 files changed, 345 insertions(+), 69 deletions(-)
---
diff --git a/src/common/nmv-env.cc b/src/common/nmv-env.cc
index f39f900..cac974f 100644
--- a/src/common/nmv-env.cc
+++ b/src/common/nmv-env.cc
@@ -39,7 +39,11 @@
using namespace std;
+
NEMIVER_BEGIN_NAMESPACE (nemiver)
+
+const char *CONF_KEY_GDB_BINARY = "/apps/nemiver/dbgperspective/gdb-binary";
+
NEMIVER_BEGIN_NAMESPACE (common)
NEMIVER_BEGIN_NAMESPACE (env)
diff --git a/src/dbgengine/nmv-dbg-common.h b/src/dbgengine/nmv-dbg-common.h
index d6d2ce1..a2c4992 100644
--- a/src/dbgengine/nmv-dbg-common.h
+++ b/src/dbgengine/nmv-dbg-common.h
@@ -406,7 +406,7 @@ public:
bool m_has_memory_values;
// asm instruction list
- std::list<IDebugger::AsmInstr> m_asm_instrs;
+ std::list<IDebugger::Asm> m_asm_instrs;
bool m_has_asm_instrs;
// Variable Object
@@ -557,12 +557,12 @@ public:
bool has_asm_instruction_list () const {return m_has_asm_instrs;}
void has_asm_instruction_list (bool a) {m_has_asm_instrs = a;}
- const std::list<IDebugger::AsmInstr>& asm_instruction_list () const
+ const std::list<IDebugger::Asm>& asm_instruction_list () const
{
return m_asm_instrs;
}
void asm_instruction_list
- (const std::list<IDebugger::AsmInstr> &a_asms)
+ (const std::list<IDebugger::Asm> &a_asms)
{
m_asm_instrs = a_asms;
m_has_asm_instrs = true;
diff --git a/src/dbgengine/nmv-gdb-engine.cc b/src/dbgengine/nmv-gdb-engine.cc
index 2b51ef8..5c21acc 100644
--- a/src/dbgengine/nmv-gdb-engine.cc
+++ b/src/dbgengine/nmv-gdb-engine.cc
@@ -51,10 +51,11 @@ using namespace nemiver::cpp;
static const UString GDBMI_OUTPUT_DOMAIN = "gdbmi-output-domain";
static const UString DEFAULT_GDB_BINARY = "default-gdb-binary";
-static const UString CONF_KEY_GDB_BINARY = "/apps/nemiver/dbgperspective/gdb-binary";
NEMIVER_BEGIN_NAMESPACE (nemiver)
+extern const char* CONF_KEY_GDB_BINARY;
+
// Helper function to handle escaping the arguments
static UString
quote_args (const vector<UString> &a_prog_args)
@@ -270,7 +271,7 @@ public:
mutable sigc::signal<void,
const IDebugger::DisassembleInfo&,
- const std::list<IDebugger::AsmInstr>&,
+ const std::list<IDebugger::Asm>&,
const UString& /*cookie*/> instructions_disassembled_signal;
mutable sigc::signal<void, const VariableSafePtr, const UString&>
@@ -2316,7 +2317,7 @@ struct OnDisassembleHandler : OutputHandler {
THROW_IF_FAIL (m_engine);
- const std::list<IDebugger::AsmInstr>& instrs =
+ const std::list<IDebugger::Asm>& instrs =
a_in.output ().result_record ().asm_instruction_list ();
IDebugger::DisassembleInfo info;
@@ -2324,12 +2325,11 @@ struct OnDisassembleHandler : OutputHandler {
info.file_name (a_in.command ().tag0 ());
}
if (!instrs.empty ()) {
- std::list<IDebugger::AsmInstr>::const_iterator it =
- instrs.begin ();
- info.start_address (it->address ());
+ std::list<IDebugger::Asm>::const_iterator it = instrs.begin ();
+ info.start_address ((*it).instr ().address ());
it = instrs.end ();
it--;
- info.end_address (it->address ());
+ info.end_address ((*it).instr ().address ());
}
// Call the slot associated to IDebugger::disassemble, if any.
if (a_in.command ().has_slot ()) {
@@ -3141,7 +3141,7 @@ GDBEngine::program_finished_signal () const
sigc::signal<void,
const IDebugger::DisassembleInfo&,
- const std::list<IDebugger::AsmInstr>&,
+ const std::list<IDebugger::Asm>&,
const UString& /*cookie*/>&
GDBEngine::instructions_disassembled_signal () const
{
@@ -4425,7 +4425,7 @@ GDBEngine::set_memory (size_t a_addr,
void
null_disass_slot (const IDebugger::DisassembleInfo &,
- const std::list<IDebugger::AsmInstr> &)
+ const std::list<IDebugger::Asm> &)
{
}
@@ -4434,11 +4434,13 @@ GDBEngine::disassemble (size_t a_start_addr,
bool a_start_addr_relative_to_pc,
size_t a_end_addr,
bool a_end_addr_relative_to_pc,
+ bool a_pure_asm,
const UString &a_cookie)
{
LOG_FUNCTION_SCOPE_NORMAL_DD;
disassemble (a_start_addr, a_start_addr_relative_to_pc, a_end_addr,
- a_end_addr_relative_to_pc, &null_disass_slot, a_cookie);
+ a_end_addr_relative_to_pc, &null_disass_slot,
+ a_pure_asm, a_cookie);
}
void
@@ -4447,6 +4449,7 @@ GDBEngine::disassemble (size_t a_start_addr,
size_t a_end_addr,
bool a_end_addr_relative_to_pc,
const DisassSlot &a_slot,
+ bool a_pure_asm,
const UString &a_cookie)
{
LOG_FUNCTION_SCOPE_NORMAL_DD;
@@ -4474,7 +4477,11 @@ GDBEngine::disassemble (size_t a_start_addr,
} else {
cmd_str += " -e " + UString::from_int (a_end_addr);
}
- cmd_str += " -- 0";
+
+ if (a_pure_asm)
+ cmd_str += " -- 0";
+ else
+ cmd_str += " -- 1";
// </build the command string>
@@ -4489,11 +4496,12 @@ void
GDBEngine::disassemble_lines (const UString &a_file_name,
int a_line_num,
int a_nb_disassembled_lines,
+ bool a_pure_asm,
const UString &a_cookie)
{
LOG_FUNCTION_SCOPE_NORMAL_DD;
disassemble_lines (a_file_name, a_line_num, a_nb_disassembled_lines,
- &null_disass_slot, a_cookie);
+ &null_disass_slot, a_pure_asm, a_cookie);
}
void
@@ -4501,6 +4509,7 @@ GDBEngine::disassemble_lines (const UString &a_file_name,
int a_line_num,
int a_nb_disassembled_lines,
const DisassSlot &a_slot,
+ bool a_pure_asm,
const UString &a_cookie)
{
LOG_FUNCTION_SCOPE_NORMAL_DD;
@@ -4512,7 +4521,10 @@ GDBEngine::disassemble_lines (const UString &a_file_name,
if (a_nb_disassembled_lines) {
cmd_str += " -n " + UString::from_int (a_nb_disassembled_lines);
}
- cmd_str += " -- 0";
+ if (a_pure_asm)
+ cmd_str += " -- 0";
+ else
+ cmd_str += " -- 1";
LOG_DD ("cmd_str: " << cmd_str);
diff --git a/src/dbgengine/nmv-gdb-engine.h b/src/dbgengine/nmv-gdb-engine.h
index cbeed92..679f740 100644
--- a/src/dbgengine/nmv-gdb-engine.h
+++ b/src/dbgengine/nmv-gdb-engine.h
@@ -176,7 +176,7 @@ public:
set_memory_signal () const;
sigc::signal<void,
const IDebugger::DisassembleInfo&,
- const std::list<IDebugger::AsmInstr>&,
+ const std::list<IDebugger::Asm>&,
const UString& /*cookie*/>&
instructions_disassembled_signal () const;
@@ -456,6 +456,7 @@ public:
bool a_start_addr_relative_to_pc,
size_t a_end_addr,
bool a_end_addr_relative_to_pc,
+ bool a_pure_asm,
const UString &a_cookie);
void disassemble (size_t a_start_addr,
@@ -463,17 +464,20 @@ public:
size_t a_end_addr,
bool a_end_addr_relative_to_pc,
const DisassSlot &a_slot,
+ bool a_pure_asm,
const UString &a_cookie);
void disassemble_lines (const UString &a_file_name,
int a_line_num,
int a_nb_disassembled_lines,
+ bool a_pure_asm,
const UString &a_cookie);
void disassemble_lines (const UString &a_file_name,
int a_line_num,
int a_nb_disassembled_lines,
const DisassSlot &a_slot,
+ bool a_pure_asm,
const UString &a_cookie);
void create_variable (const UString &a_name,
diff --git a/src/dbgengine/nmv-gdbmi-parser.cc b/src/dbgengine/nmv-gdbmi-parser.cc
index 46f90d4..cce676a 100644
--- a/src/dbgengine/nmv-gdbmi-parser.cc
+++ b/src/dbgengine/nmv-gdbmi-parser.cc
@@ -1904,13 +1904,13 @@ fetch_gdbmi_result:
} else if (!RAW_INPUT.compare (cur,
strlen (PREFIX_ASM_INSTRUCTIONS),
PREFIX_ASM_INSTRUCTIONS)) {
- std::list<IDebugger::AsmInstr> asm_instr_list;
+ std::list<IDebugger::Asm> asm_instrs;
if (!parse_asm_instruction_list (cur, cur,
- asm_instr_list)) {
+ asm_instrs)) {
LOG_PARSING_ERROR2 (cur);
} else {
LOG_D ("parsed asm instruction list", GDBMI_PARSING_DOMAIN);
- result_record.asm_instruction_list (asm_instr_list);
+ result_record.asm_instruction_list (asm_instrs);
}
} else if (!RAW_INPUT.compare (cur,
strlen (PREFIX_NAME),
@@ -3882,17 +3882,11 @@ bool
GDBMIParser::parse_asm_instruction_list
(UString::size_type a_from,
UString::size_type &a_to,
- std::list<IDebugger::AsmInstr> &a_asm_instrs)
+ std::list<IDebugger::Asm> &a_instrs)
{
LOG_FUNCTION_SCOPE_NORMAL_D (GDBMI_PARSING_DOMAIN);
UString::size_type cur = a_from;
-#define ERROR_OUT \
-do { \
-a_asm_instrs.clear (); \
-return false; \
-} while (false)
-
if (RAW_INPUT.compare (cur,
strlen (PREFIX_ASM_INSTRUCTIONS),
PREFIX_ASM_INSTRUCTIONS)) {
@@ -3906,56 +3900,106 @@ return false; \
return false;
}
- // A GDB/MI list of asm instruction descriptors
+ // A GDB/MI LIST of asm instruction descriptors
+ //
+ // Each insn descriptor is either a TUPLE or a RESULT:
+ // When it's a TUPLE, it represents a pure asm insn
+ // that looks like:
+ // {address="0x000107bc",func-name="main",offset="0",
+ // inst="save %sp, -112, %sp"}
+ // When it's a RESULT, it represents a mixed source/asm insn that
+ // looks like:
+ // src_and_asm_line=
+ // {
+ // line="31",file="basics.c",
+ // line_asm_insn=[{address="0x000107bc",func-name="main",offset="0",
+ // inst="save %sp, -112, %sp"}]
+ // }
GDBMIListSafePtr gdbmi_list;
+
+ // OK, now parse the LIST.
if (!parse_gdbmi_list (cur, cur, gdbmi_list)) {
LOG_PARSING_ERROR2 (cur);
return false;
}
+
// If gdbmi_list is empty, gdbmi_list->content_type will yield
// GDBMIList::UNDEFINED_TYPE, so lets test it now and return early
// if necessary.
if (gdbmi_list->empty ()) {
a_to = cur;
- a_asm_instrs.clear ();
+ a_instrs.clear ();
return true;
}
- if (gdbmi_list->content_type () != GDBMIList::VALUE_TYPE) {
+ // So the content of the list gdbmi_list is either a list of TUPLES,
+ // or a list of result, like described earlier. Figure out which is
+ // which and parse the damn thing accordingly.
+ if (gdbmi_list->content_type () == GDBMIList::VALUE_TYPE) {
+ list<IDebugger::AsmInstr> instrs;
+ if (!analyse_pure_asm_instrs (gdbmi_list, instrs, cur)) {
+ LOG_PARSING_ERROR2 (cur);
+ return false;
+ }
+ list<IDebugger::AsmInstr>::const_iterator it;
+ for (it = instrs.begin (); it != instrs.end (); ++it) {
+ a_instrs.push_back (*it);
+ }
+ } else if (gdbmi_list->content_type () == GDBMIList::RESULT_TYPE) {
+ list<IDebugger::MixedAsmInstr> instrs;
+ if (!analyse_mixed_asm_instrs (gdbmi_list, instrs, cur)) {
+ LOG_PARSING_ERROR2 (cur);
+ return false;
+ }
+ list<IDebugger::MixedAsmInstr>::const_iterator it;
+ for (it = instrs.begin (); it != instrs.end (); ++it) {
+ a_instrs.push_back (*it);
+ }
+ } else {
LOG_PARSING_ERROR2 (cur);
return false;
}
- std::list<GDBMIValueSafePtr> vals;
- gdbmi_list->get_value_content (vals);
- std::list<GDBMIValueSafePtr>::const_iterator val_iter;
+ a_to = cur;
+ return true;
+}
+
+bool
+GDBMIParser::analyse_pure_asm_instrs (GDBMIListSafePtr a_gdbmi_list,
+ list<IDebugger::AsmInstr> &a_instrs,
+ string::size_type a_cur)
+{
+ list<GDBMIValueSafePtr> vals;
+ a_gdbmi_list->get_value_content (vals);
+ list<GDBMIValueSafePtr>::const_iterator val_iter;
string addr, func_name, instr, offset;
IDebugger::AsmInstr asm_instr;
- // Loop over the tuples contained in gdbmi_list.
- // Each tuple represents an asm instruction descriptor that has four
- // fields: 1/the address of the instruction, 2/ name of the function
- // the instruction is located in, 3/the offset of the instruction
- // inside the function, 4/a string representing the asm intruction.
+ // Loop over the tuples contained in a_gdbmi_list.
+ // Each tuple represents an asm instruction descriptor that has at
+ // least four fields:
+ // 1/ the address of the instruction,
+ // 2/ name of the function the instruction is located in,
+ // 3/ the offset of the instruction inside the function,
+ // 4/ a string representing the asm intruction.
for (val_iter = vals.begin (); val_iter != vals.end (); ++val_iter) {
if ((*val_iter)->content_type () != GDBMIValue::TUPLE_TYPE) {
- LOG_PARSING_ERROR2 (cur);
- ERROR_OUT;
+ return false;;
}
GDBMITupleSafePtr tuple = (*val_iter)->get_tuple_content ();
THROW_IF_FAIL (tuple);
std::list<GDBMIResultSafePtr> result_list = tuple->content ();
- if (result_list.size () != 4) {
+ if (result_list.size () < 4) {
// each tuple should have 'address', 'func-name"', 'offset',
// and 'inst' fields.
- LOG_PARSING_ERROR2 (cur);
- ERROR_OUT;
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;;
}
- std::list<GDBMIResultSafePtr>::const_iterator res_iter =
- result_list.begin ();
+ list<GDBMIResultSafePtr>::const_iterator res_iter =
+ result_list.begin ();
// get address field
GDBMIValueSafePtr val = (*res_iter)->value ();
if ((*res_iter)->variable () != "address"
|| val->content_type () != GDBMIValue::STRING_TYPE) {
- LOG_PARSING_ERROR2 (cur);
- ERROR_OUT;
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;;
}
addr = val->get_string_content ().raw ();
LOG_DD ("addr: " << addr);
@@ -3965,8 +4009,8 @@ return false; \
val = (*res_iter)->value ();
if ((*res_iter)->variable () != "func-name"
|| val->content_type () != GDBMIValue::STRING_TYPE) {
- LOG_PARSING_ERROR2 (cur);
- ERROR_OUT;
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;;
}
func_name = val->get_string_content ();
LOG_DD ("func-name: " << func_name);
@@ -3976,8 +4020,8 @@ return false; \
val = (*res_iter)->value ();
if ((*res_iter)->variable () != "offset"
|| val->content_type () != GDBMIValue::STRING_TYPE) {
- LOG_PARSING_ERROR2 (cur);
- ERROR_OUT;
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;;
}
offset = val->get_string_content ().raw ();
LOG_DD ("offset: " << offset);
@@ -3987,18 +4031,116 @@ return false; \
val = (*res_iter)->value ();
if ((*res_iter)->variable () != "inst"
|| val->content_type () != GDBMIValue::STRING_TYPE) {
- LOG_PARSING_ERROR2 (cur);
- ERROR_OUT;
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;;
}
instr = val->get_string_content ();
LOG_DD ("instr: " << instr);
asm_instr = IDebugger::AsmInstr (addr, func_name, offset, instr);
- a_asm_instrs.push_back (asm_instr);
+ a_instrs.push_back (asm_instr);
}
- a_to = cur;
return true;
}
+bool
+GDBMIParser::analyse_mixed_asm_instrs (GDBMIListSafePtr a_gdbmi_list,
+ list<IDebugger::MixedAsmInstr> &a_instrs,
+ string::size_type a_cur)
+{
+
+ if (a_gdbmi_list->content_type () != GDBMIList::RESULT_TYPE)
+ return false;
+
+ list<GDBMIResultSafePtr> outer_results, inner_results;
+ a_gdbmi_list->get_result_content (outer_results);
+ list<GDBMIResultSafePtr>::const_iterator outer_it, inner_it;
+ // Loop over the results tuples contained in a_gdbmi_list. There are
+ // at least 3 results in the list:
+ // 1/ line=<source-line-number>
+ // 2/ file=<source-file-path>
+ // 3/ line_asm_insn=[<tuples>], where <tuples> are tuples that can
+ // be analysed by analyse_pure_asm_instrs.
+
+ for (outer_it = outer_results.begin ();
+ outer_it != outer_results.end ();
+ ++outer_it) {
+ if ((*outer_it)->variable () != "src_and_asm_line") {
+ stringstream s;
+ s << "got result named " << (*outer_it)->variable ()
+ << " instead of src_and_asm_line";
+ LOG_PARSING_ERROR_MSG2 (a_cur, s.str ());
+ return false;
+ }
+ if ((*outer_it)->value ()->content_type ()
+ != GDBMIValue::TUPLE_TYPE) {
+ stringstream s;
+ s << "got value of type " << (*outer_it)->value ()->content_type ()
+ << " instead of TUPLE_TYPE (3)";
+ LOG_PARSING_ERROR_MSG2 (a_cur, s.str ());
+ return false;
+ }
+ inner_results = (*outer_it)->value ()->get_tuple_content ()->content ();
+
+ for (inner_it = inner_results.begin ();
+ inner_it != inner_results.end ();
+ ++inner_it) {
+ if ((*inner_it)->variable () != "line") {
+ stringstream s;
+ s << "got result named " << (*inner_it)->variable ()
+ << " instead of line";
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ if ((*inner_it)->value ()->content_type ()
+ != GDBMIValue::STRING_TYPE) {
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ string line_str =
+ (*inner_it)->value ()->get_string_content ().raw ();
+ if (!str_utils::string_is_number (line_str)) {
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ IDebugger::MixedAsmInstr instr;
+ instr.line_number (atoi (line_str.c_str ()));
+
+ ++inner_it;
+ if ((*inner_it)->variable () != "file") {
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ if ((*inner_it)->value ()->content_type ()
+ != GDBMIValue::STRING_TYPE) {
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ instr.file_path
+ ((*inner_it)->value ()->get_string_content ());
+
+ ++inner_it;
+ if ((*inner_it)->variable ()
+ != "line_asm_insn") {
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ if ((*inner_it)->value ()->content_type ()
+ != GDBMIValue::LIST_TYPE) {
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ list<IDebugger::AsmInstr> &instrs = instr.instrs ();
+ if (!analyse_pure_asm_instrs
+ ((*inner_it)->value ()->get_list_content (),
+ instrs, a_cur)) {
+ LOG_PARSING_ERROR2 (a_cur);
+ return false;
+ }
+ a_instrs.push_back (instr);
+ }
+ }
+ return true;
+}
bool
GDBMIParser::parse_variable (UString::size_type a_from,
diff --git a/src/dbgengine/nmv-gdbmi-parser.h b/src/dbgengine/nmv-gdbmi-parser.h
index ef9b207..096fead 100644
--- a/src/dbgengine/nmv-gdbmi-parser.h
+++ b/src/dbgengine/nmv-gdbmi-parser.h
@@ -179,7 +179,6 @@ class GDBMIList : public Object {
GDBMIList (const GDBMIList &);
GDBMIList& operator= (const GDBMIList &);
- //boost::variant<list<GDBMIResultSafePtr>, list<GDBMIValueSafePtr> > m_content;
list<boost::variant<GDBMIResultSafePtr, GDBMIValueSafePtr> > m_content;
bool m_empty;
@@ -325,6 +324,13 @@ class GDBMIParser {
struct Priv;
SafePtr<Priv> m_priv;
+ bool analyse_pure_asm_instrs (GDBMIListSafePtr,
+ list<IDebugger::AsmInstr>&,
+ string::size_type a_cur);
+
+ bool analyse_mixed_asm_instrs (GDBMIListSafePtr,
+ list<IDebugger::MixedAsmInstr>&,
+ string::size_type a_cur);
public:
/// Parsing mode.
@@ -560,7 +566,8 @@ public:
/// See the GDB/MI documentation for more.
bool parse_stack_arguments (UString::size_type a_from,
UString::size_type &a_to,
- map<int, list<IDebugger::VariableSafePtr> > &a_params);
+ map<int,
+ list<IDebugger::VariableSafePtr> > &a_parms);
/// parse a list of local variables as returned by
/// the GDBMI command -stack-list-locals 2
@@ -593,11 +600,12 @@ public:
bool parse_changed_registers (UString::size_type a_from,
UString::size_type &a_to,
- std::list<IDebugger::register_id_t> &a_registers);
+ std::list<IDebugger::register_id_t> &a_regs);
bool parse_register_values (UString::size_type a_from,
UString::size_type &a_to,
- std::map<IDebugger::register_id_t, UString> &a_values);
+ std::map<IDebugger::register_id_t,
+ UString> &a_values);
bool parse_memory_values (UString::size_type a_from,
UString::size_type &a_to,
@@ -608,7 +616,7 @@ public:
/// by GDB/MI
bool parse_asm_instruction_list (UString::size_type a_from,
UString::size_type &a_to,
- std::list<IDebugger::AsmInstr> &a_asm);
+ std::list<IDebugger::Asm> &a_asm);
bool parse_variable (UString::size_type a_from,
UString::size_type &a_to,
diff --git a/src/dbgengine/nmv-i-debugger.h b/src/dbgengine/nmv-i-debugger.h
index 49af67f..db9c41d 100644
--- a/src/dbgengine/nmv-i-debugger.h
+++ b/src/dbgengine/nmv-i-debugger.h
@@ -789,10 +789,10 @@ public:
{
}
- AsmInstr (string &a_address,
- string &a_func,
- string &a_offset,
- string &a_instr):
+ AsmInstr (const string &a_address,
+ const string &a_func,
+ const string &a_offset,
+ const string &a_instr):
m_address (a_address),
m_func (a_func),
m_offset (a_offset),
@@ -817,13 +817,103 @@ public:
void instruction (const string &a_instr) {m_instr = a_instr;}
};//end class AsmInstr
+ class MixedAsmInstr {
+ // No need of copy constructor or assignment operator yet.
+ UString m_file_path;
+ int m_line_number;
+ list<AsmInstr> m_instrs;
+
+ public:
+
+ MixedAsmInstr () :
+ m_line_number (-1)
+ {
+ }
+
+ MixedAsmInstr (const UString &a_path,
+ int a_line_num) :
+ m_file_path (a_path),
+ m_line_number (a_line_num)
+ {
+ }
+
+ MixedAsmInstr (const UString &a_path,
+ int a_line_num,
+ list<AsmInstr> &a_instrs) :
+ m_file_path (a_path),
+ m_line_number (a_line_num),
+ m_instrs (a_instrs)
+ {
+ }
+
+ const UString& file_path () const {return m_file_path;}
+ void file_path (const UString &a) {m_file_path = a;}
+
+ int line_number () const {return m_line_number;}
+ void line_number (int a) {m_line_number = a;}
+
+ const list<AsmInstr>& instrs () const {return m_instrs;}
+ list<AsmInstr>& instrs () {return m_instrs;}
+ void instrs (const list<AsmInstr> &a) {m_instrs = a;}
+ };
+
+ // Okay, so the result of a call to IDebugger::disassemble returns a
+ // list of Asm. An Asm is a variant type that is either an AsmInstr
+ // (a pure asm instruction) or a mixed asm/source that is basically
+ // a source code locus associated to the list of AsmInstr it
+ // generated. Asm::which will return an ASM_TYPE_PURE if it's an
+ // AsmInstr or ASM_TYPE_MIXED if it's an MixedAsmInstr.
+ class Asm {
+ boost::variant<AsmInstr, MixedAsmInstr> m_asm;
+
+ public:
+ enum Type {
+ TYPE_PURE = 0,
+ TYPE_MIXED
+ };
+
+ Asm (const AsmInstr &a) :
+ m_asm (a)
+ {
+ }
+
+ Asm (const MixedAsmInstr &a) :
+ m_asm (a)
+ {
+ }
+
+ Type which () const
+ {
+ return static_cast<Type> (m_asm.which ());
+ }
+
+ const AsmInstr& instr () const
+ {
+ switch (which ()) {
+ case TYPE_PURE:
+ return boost::get<AsmInstr> (m_asm);
+ case TYPE_MIXED:
+ return boost::get<MixedAsmInstr> (m_asm).instrs ().front ();
+ default:
+ break;
+ }
+ THROW ("reached unreachable");
+ }
+
+ const MixedAsmInstr& mixed_instr () const
+ {
+ THROW_IF_FAIL (which () == TYPE_MIXED);
+ return boost::get<MixedAsmInstr> (m_asm);
+ }
+ };
+
class DisassembleInfo {
// no need of copy constructor yet,
// as we don't have any pointer member.
UString m_function_name;
UString m_file_name;
- std::string m_start_address;
- std::string m_end_address;
+ string m_start_address;
+ string m_end_address;
public:
DisassembleInfo ()
@@ -1034,7 +1124,7 @@ public:
// So that the code receiving the signal can adjust accordingly
virtual sigc::signal<void,
const IDebugger::DisassembleInfo&,
- const std::list<IDebugger::AsmInstr>&,
+ const std::list<IDebugger::Asm>&,
const UString& /*cookie*/>&
instructions_disassembled_signal () const = 0;
@@ -1257,12 +1347,13 @@ public:
typedef sigc::slot<void,
const IDebugger::DisassembleInfo&,
- const std::list<IDebugger::AsmInstr>& > DisassSlot;
+ const std::list<IDebugger::Asm>& > DisassSlot;
virtual void disassemble (size_t a_start_addr,
bool a_start_addr_relative_to_pc,
size_t a_end_addr,
bool a_end_addr_relative_to_pc,
+ bool a_pure_asm = true,
const UString &a_cookie = "") = 0;
virtual void disassemble (size_t a_start_addr,
@@ -1270,17 +1361,20 @@ public:
size_t a_end_addr,
bool a_end_addr_relative_to_pc,
const DisassSlot &a_slot,
+ bool a_pure_asm = true,
const UString &a_cookie = "") = 0;
virtual void disassemble_lines (const UString &a_file_name,
int a_line_num,
int a_nb_disassembled_lines,
+ bool a_pure_asm = true,
const UString &a_cookie = "") = 0;
virtual void disassemble_lines (const UString &a_file_name,
int a_line_num,
int a_nb_disassembled_lines,
const DisassSlot &a_slot,
+ bool a_pure_asm = true,
const UString &a_cookie = "") = 0;
typedef sigc::slot<void, const VariableSafePtr> ConstVariableSlot;
diff --git a/tests/test-gdbmi.cc b/tests/test-gdbmi.cc
index 9d10de0..ce04f42 100644
--- a/tests/test-gdbmi.cc
+++ b/tests/test-gdbmi.cc
@@ -3,6 +3,7 @@
#include <map>
#include <boost/test/unit_test.hpp>
#include "dbgengine/nmv-gdbmi-parser.h"
+#include "dbgengine/nmv-asm-utils.h"
#include "common/nmv-exception.h"
#include "common/nmv-initializer.h"
@@ -168,6 +169,10 @@ static const char* gv_breakpoint2 =
const char *gv_disassemble1 =
"^done,asm_insns=[{address=\"0x08048dc3\",func-name=\"main\",offset=\"0\",inst=\"lea 0x4(%esp),%ecx\"},{address=\"0x08048dc7\",func-name=\"main\",offset=\"4\",inst=\"and $0xfffffff0,%esp\"},{address=\"0x08048dca\",func-name=\"main\",offset=\"7\",inst=\"pushl -0x4(%ecx)\"},{address=\"0x08048dcd\",func-name=\"main\",offset=\"10\",inst=\"push %ebp\"},{address=\"0x08048dce\",func-name=\"main\",offset=\"11\",inst=\"mov %esp,%ebp\"},{address=\"0x08048dd0\",func-name=\"main\",offset=\"13\",inst=\"push %esi\"},{address=\"0x08048dd1\",func-name=\"main\",offset=\"14\",inst=\"push %ebx\"},{address=\"0x08048dd2\",func-name=\"main\",offset=\"15\",inst=\"push %ecx\"},{address=\"0x08048dd3\",func-name=\"main\",offset=\"16\",inst=\"sub $0x5c,%esp\"},{address=\"0x08048dd6\",func-name=\"main\",offset=\"19\",inst=\"lea -0x25(%ebp),%eax\"},{address=\"0x08048dd9\",func-name=\"main\",offset=\"22\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048ddc\",func-name=\"main\",off
set=\"25\",inst=\"call 0x8048be4 <_ZNSaIcEC1Ev plt>\"},{address=\"0x08048de1\",func-name=\"main\",offset=\"30\",inst=\"lea -0x25(%ebp),%eax\"},{address=\"0x08048de4\",func-name=\"main\",offset=\"33\",inst=\"mov %eax,0x8(%esp)\"},{address=\"0x08048de8\",func-name=\"main\",offset=\"37\",inst=\"movl $0x8049485,0x4(%esp)\"},{address=\"0x08048df0\",func-name=\"main\",offset=\"45\",inst=\"lea -0x2c(%ebp),%eax\"},{address=\"0x08048df3\",func-name=\"main\",offset=\"48\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048df6\",func-name=\"main\",offset=\"51\",inst=\"call 0x8048b84 <_ZNSsC1EPKcRKSaIcE plt>\"},{address=\"0x08048dfb\",func-name=\"main\",offset=\"56\",inst=\"lea -0x1d(%ebp),%eax\"},{address=\"0x08048dfe\",func-name=\"main\",offset=\"59\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048e01\",func-name=\"main\",offset=\"62\",inst=\"call 0x8048be4 <_ZNSaIcEC1Ev plt>\"},{address=\"0x08048e06\",func-name=\"main\",offset=\"67\",inst=\"lea -0x1d(%ebp),%eax\"},
{address=\"0x08048e09\",func-name=\"main\",offset=\"70\",inst=\"mov %eax,0x8(%esp)\"},{address=\"0x08048e0d\",func-name=\"main\",offset=\"74\",inst=\"movl $0x804948c,0x4(%esp)\"},{address=\"0x08048e15\",func-name=\"main\",offset=\"82\",inst=\"lea -0x24(%ebp),%eax\"},{address=\"0x08048e18\",func-name=\"main\",offset=\"85\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048e1b\",func-name=\"main\",offset=\"88\",inst=\"call 0x8048b84 <_ZNSsC1EPKcRKSaIcE plt>\"},{address=\"0x08048e20\",func-name=\"main\",offset=\"93\",inst=\"movl $0xf,0xc(%esp)\"},{address=\"0x08048e28\",func-name=\"main\",offset=\"101\",inst=\"lea -0x2c(%ebp),%eax\"},{address=\"0x08048e2b\",func-name=\"main\",offset=\"104\",inst=\"mov %eax,0x8(%esp)\"},{address=\"0x08048e2f\",func-name=\"main\",offset=\"108\",inst=\"lea -0x24(%ebp),%eax\"},{address=\"0x08048e32\",func-name=\"main\",offset=\"111\",inst=\"mov %eax,0x4(%esp)\"},{address=\"0x08048e36\",func-name=\"main\",offset=\"115\",inst=\"l
ea -0x38(%ebp),%eax\"},{address=\"0x08048e39\",func-name=\"main\",offset=\"118\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048e3c\",func-name=\"main\",offset=\"121\",inst=\"call 0x8049178 <Person>\"},{address=\"0x08048e41\",func-name=\"main\",offset=\"126\",inst=\"lea -0x24(%ebp),%eax\"},{address=\"0x08048e44\",func-name=\"main\",offset=\"129\",inst=\"mov %eax,-0x48(%ebp)\"},{address=\"0x08048e47\",func-name=\"main\",offset=\"132\",inst=\"mov -0x48(%ebp),%eax\"},{address=\"0x08048e4a\",func-name=\"main\",offset=\"135\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048e4d\",func-name=\"main\",offset=\"138\",inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08048e52\",func-name=\"main\",offset=\"143\",inst=\"jmp 0x8048e79 <main+182>\"},{address=\"0x08048e54\",func-name=\"main\",offset=\"145\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08048e57\",func-name=\"main\",offset=\"148\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x08048e5a\",func-name=\"ma
in\",offset=\"151\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08048e5d\",func-name=\"main\",offset=\"154\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08048e60\",func-name=\"main\",offset=\"157\",inst=\"lea -0x24(%ebp),%eax\"},{address=\"0x08048e63\",func-name=\"main\",offset=\"160\",inst=\"mov %eax,-0x48(%ebp)\"},{address=\"0x08048e66\",func-name=\"main\",offset=\"163\",inst=\"mov -0x48(%ebp),%eax\"},{address=\"0x08048e69\",func-name=\"main\",offset=\"166\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048e6c\",func-name=\"main\",offset=\"169\",inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08048e71\",func-name=\"main\",offset=\"174\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08048e74\",func-name=\"main\",offset=\"177\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08048e77\",func-name=\"main\",offset=\"180\",inst=\"jmp 0x8048ebc <main+249>\"},{address=\"0x08048e79\",func-name=\"main\",offset=\"182\",inst=\"lea -0x1d(%ebp),%eax\"},{addres
s=\"0x08048e7c\",func-name=\"main\",offset=\"185\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048e7f\",func-name=\"main\",offset=\"188\",inst=\"call 0x8048b74 <_ZNSaIcED1Ev plt>\"},{address=\"0x08048e84\",func-name=\"main\",offset=\"193\",inst=\"lea -0x2c(%ebp),%eax\"},{address=\"0x08048e87\",func-name=\"main\",offset=\"196\",inst=\"mov %eax,-0x4c(%ebp)\"},{address=\"0x08048e8a\",func-name=\"main\",offset=\"199\",inst=\"mov -0x4c(%ebp),%eax\"},{address=\"0x08048e8d\",func-name=\"main\",offset=\"202\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048e90\",func-name=\"main\",offset=\"205\",inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08048e95\",func-name=\"main\",offset=\"210\",inst=\"jmp 0x8048ef2 <main+303>\"},{address=\"0x08048e97\",func-name=\"main\",offset=\"212\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08048e9a\",func-name=\"main\",offset=\"215\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x08048e9d\",func-name=\"main\",offset=\"218\",ins
t=\"mov -0x50(%ebp),%esi\"},{address=\"0x08048ea0\",func-name=\"main\",offset=\"221\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08048ea3\",func-name=\"main\",offset=\"224\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x08048ea6\",func-name=\"main\",offset=\"227\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048ea9\",func-name=\"main\",offset=\"230\",inst=\"call 0x804921a <~Person>\"},{address=\"0x08048eae\",func-name=\"main\",offset=\"235\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08048eb1\",func-name=\"main\",offset=\"238\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08048eb4\",func-name=\"main\",offset=\"241\",inst=\"jmp 0x8048ebc <main+249>\"},{address=\"0x08048eb6\",func-name=\"main\",offset=\"243\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08048eb9\",func-name=\"main\",offset=\"246\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x08048ebc\",func-name=\"main\",offset=\"249\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08048ebf\",func-name=\"
main\",offset=\"252\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08048ec2\",func-name=\"main\",offset=\"255\",inst=\"lea -0x1d(%ebp),%eax\"},{address=\"0x08048ec5\",func-name=\"main\",offset=\"258\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048ec8\",func-name=\"main\",offset=\"261\",inst=\"call 0x8048b74 <_ZNSaIcED1Ev plt>\"},{address=\"0x08048ecd\",func-name=\"main\",offset=\"266\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08048ed0\",func-name=\"main\",offset=\"269\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08048ed3\",func-name=\"main\",offset=\"272\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08048ed6\",func-name=\"main\",offset=\"275\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08048ed9\",func-name=\"main\",offset=\"278\",inst=\"lea -0x2c(%ebp),%eax\"},{address=\"0x08048edc\",func-name=\"main\",offset=\"281\",inst=\"mov %eax,-0x4c(%ebp)\"},{address=\"0x08048edf\",func-name=\"main\",offset=\"284\",inst=\"mov -0x4c(%ebp),%eax\"},{addre
ss=\"0x08048ee2\",func-name=\"main\",offset=\"287\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048ee5\",func-name=\"main\",offset=\"290\",inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08048eea\",func-name=\"main\",offset=\"295\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08048eed\",func-name=\"main\",offset=\"298\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08048ef0\",func-name=\"main\",offset=\"301\",inst=\"jmp 0x8048f62 <main+415>\"},{address=\"0x08048ef2\",func-name=\"main\",offset=\"303\",inst=\"lea -0x25(%ebp),%eax\"},{address=\"0x08048ef5\",func-name=\"main\",offset=\"306\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048ef8\",func-name=\"main\",offset=\"309\",inst=\"call 0x8048b74 <_ZNSaIcED1Ev plt>\"},{address=\"0x08048efd\",func-name=\"main\",offset=\"314\",inst=\"call 0x8048cd4 <_Z5func1v>\"},{address=\"0x08048f02\",func-name=\"main\",offset=\"319\",inst=\"movl $0x2,0x4(%esp)\"},{address=\"0x08048f0a\",func-name=\"main\",offset=\"327\"
,inst=\"movl $0x1,(%esp)\"},{address=\"0x08048f11\",func-name=\"main\",offset=\"334\",inst=\"call 0x8048ce7 <_Z5func2ii>\"},{address=\"0x08048f16\",func-name=\"main\",offset=\"339\",inst=\"lea -0x15(%ebp),%eax\"},{address=\"0x08048f19\",func-name=\"main\",offset=\"342\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048f1c\",func-name=\"main\",offset=\"345\",inst=\"call 0x8048be4 <_ZNSaIcEC1Ev plt>\"},{address=\"0x08048f21\",func-name=\"main\",offset=\"350\",inst=\"lea -0x15(%ebp),%eax\"},{address=\"0x08048f24\",func-name=\"main\",offset=\"353\",inst=\"mov %eax,0x8(%esp)\"},{address=\"0x08048f28\",func-name=\"main\",offset=\"357\",inst=\"movl $0x8049490,0x4(%esp)\"},{address=\"0x08048f30\",func-name=\"main\",offset=\"365\",inst=\"lea -0x1c(%ebp),%eax\"},{address=\"0x08048f33\",func-name=\"main\",offset=\"368\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048f36\",func-name=\"main\",offset=\"371\",inst=\"call 0x8048b84 <_ZNSsC1EPKcRKSaIcE plt>\"},{address=\"
0x08048f3b\",func-name=\"main\",offset=\"376\",inst=\"jmp 0x8048f84 <main+449>\"},{address=\"0x08048f3d\",func-name=\"main\",offset=\"378\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08048f40\",func-name=\"main\",offset=\"381\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x08048f43\",func-name=\"main\",offset=\"384\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08048f46\",func-name=\"main\",offset=\"387\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08048f49\",func-name=\"main\",offset=\"390\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x08048f4c\",func-name=\"main\",offset=\"393\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048f4f\",func-name=\"main\",offset=\"396\",inst=\"call 0x804921a <~Person>\"},{address=\"0x08048f54\",func-name=\"main\",offset=\"401\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08048f57\",func-name=\"main\",offset=\"404\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08048f5a\",func-name=\"main\",offset=\"407\",inst=\"jmp 0x8048
f62 <main+415>\"},{address=\"0x08048f5c\",func-name=\"main\",offset=\"409\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08048f5f\",func-name=\"main\",offset=\"412\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x08048f62\",func-name=\"main\",offset=\"415\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08048f65\",func-name=\"main\",offset=\"418\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08048f68\",func-name=\"main\",offset=\"421\",inst=\"lea -0x25(%ebp),%eax\"},{address=\"0x08048f6b\",func-name=\"main\",offset=\"424\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048f6e\",func-name=\"main\",offset=\"427\",inst=\"call 0x8048b74 <_ZNSaIcED1Ev plt>\"},{address=\"0x08048f73\",func-name=\"main\",offset=\"432\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08048f76\",func-name=\"main\",offset=\"435\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08048f79\",func-name=\"main\",offset=\"438\",inst=\"mov -0x54(%ebp),%eax\"},{address=\"0x08048f7c\",func-name=\"main\",o
ffset=\"441\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048f7f\",func-name=\"main\",offset=\"444\",inst=\"call 0x8048bd4 <_Unwind_Resume plt>\"},{address=\"0x08048f84\",func-name=\"main\",offset=\"449\",inst=\"lea -0x1c(%ebp),%eax\"},{address=\"0x08048f87\",func-name=\"main\",offset=\"452\",inst=\"mov %eax,0x4(%esp)\"},{address=\"0x08048f8b\",func-name=\"main\",offset=\"456\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x08048f8e\",func-name=\"main\",offset=\"459\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048f91\",func-name=\"main\",offset=\"462\",inst=\"call 0x8049140 <_ZN6Person14set_first_nameERKSs>\"},{address=\"0x08048f96\",func-name=\"main\",offset=\"467\",inst=\"lea -0x1c(%ebp),%eax\"},{address=\"0x08048f99\",func-name=\"main\",offset=\"470\",inst=\"mov %eax,-0x44(%ebp)\"},{address=\"0x08048f9c\",func-name=\"main\",offset=\"473\",inst=\"mov -0x44(%ebp),%eax\"},{address=\"0x08048f9f\",func-name=\"main\",offset=\"476\",inst=\"mov %eax,(%esp)\
"},{address=\"0x08048fa2\",func-name=\"main\",offset=\"479\",inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08048fa7\",func-name=\"main\",offset=\"484\",inst=\"jmp 0x8048fce <main+523>\"},{address=\"0x08048fa9\",func-name=\"main\",offset=\"486\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08048fac\",func-name=\"main\",offset=\"489\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x08048faf\",func-name=\"main\",offset=\"492\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08048fb2\",func-name=\"main\",offset=\"495\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08048fb5\",func-name=\"main\",offset=\"498\",inst=\"lea -0x1c(%ebp),%eax\"},{address=\"0x08048fb8\",func-name=\"main\",offset=\"501\",inst=\"mov %eax,-0x44(%ebp)\"},{address=\"0x08048fbb\",func-name=\"main\",offset=\"504\",inst=\"mov -0x44(%ebp),%eax\"},{address=\"0x08048fbe\",func-name=\"main\",offset=\"507\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048fc1\",func-name=\"main\",offset=\"510\",
inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08048fc6\",func-name=\"main\",offset=\"515\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08048fc9\",func-name=\"main\",offset=\"518\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08048fcc\",func-name=\"main\",offset=\"521\",inst=\"jmp 0x8049006 <main+579>\"},{address=\"0x08048fce\",func-name=\"main\",offset=\"523\",inst=\"lea -0x15(%ebp),%eax\"},{address=\"0x08048fd1\",func-name=\"main\",offset=\"526\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048fd4\",func-name=\"main\",offset=\"529\",inst=\"call 0x8048b74 <_ZNSaIcED1Ev plt>\"},{address=\"0x08048fd9\",func-name=\"main\",offset=\"534\",inst=\"lea -0xd(%ebp),%eax\"},{address=\"0x08048fdc\",func-name=\"main\",offset=\"537\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048fdf\",func-name=\"main\",offset=\"540\",inst=\"call 0x8048be4 <_ZNSaIcEC1Ev plt>\"},{address=\"0x08048fe4\",func-name=\"main\",offset=\"545\",inst=\"lea -0xd(%ebp),%eax\"},{address=\
"0x08048fe7\",func-name=\"main\",offset=\"548\",inst=\"mov %eax,0x8(%esp)\"},{address=\"0x08048feb\",func-name=\"main\",offset=\"552\",inst=\"movl $0x8049494,0x4(%esp)\"},{address=\"0x08048ff3\",func-name=\"main\",offset=\"560\",inst=\"lea -0x14(%ebp),%eax\"},{address=\"0x08048ff6\",func-name=\"main\",offset=\"563\",inst=\"mov %eax,(%esp)\"},{address=\"0x08048ff9\",func-name=\"main\",offset=\"566\",inst=\"call 0x8048b84 <_ZNSsC1EPKcRKSaIcE plt>\"},{address=\"0x08048ffe\",func-name=\"main\",offset=\"571\",inst=\"jmp 0x8049022 <main+607>\"},{address=\"0x08049000\",func-name=\"main\",offset=\"573\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08049003\",func-name=\"main\",offset=\"576\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x08049006\",func-name=\"main\",offset=\"579\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08049009\",func-name=\"main\",offset=\"582\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x0804900c\",func-name=\"main\",offset=\"585\",in
st=\"lea -0x15(%ebp),%eax\"},{address=\"0x0804900f\",func-name=\"main\",offset=\"588\",inst=\"mov %eax,(%esp)\"},{address=\"0x08049012\",func-name=\"main\",offset=\"591\",inst=\"call 0x8048b74 <_ZNSaIcED1Ev plt>\"},{address=\"0x08049017\",func-name=\"main\",offset=\"596\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x0804901a\",func-name=\"main\",offset=\"599\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x0804901d\",func-name=\"main\",offset=\"602\",inst=\"jmp 0x80490fa <main+823>\"},{address=\"0x08049022\",func-name=\"main\",offset=\"607\",inst=\"lea -0x14(%ebp),%eax\"},{address=\"0x08049025\",func-name=\"main\",offset=\"610\",inst=\"mov %eax,0x4(%esp)\"},{address=\"0x08049029\",func-name=\"main\",offset=\"614\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x0804902c\",func-name=\"main\",offset=\"617\",inst=\"mov %eax,(%esp)\"},{address=\"0x0804902f\",func-name=\"main\",offset=\"620\",inst=\"call 0x804915a <_ZN6Person15set_family_nameERKSs>\"},{addr
ess=\"0x08049034\",func-name=\"main\",offset=\"625\",inst=\"lea -0x14(%ebp),%eax\"},{address=\"0x08049037\",func-name=\"main\",offset=\"628\",inst=\"mov %eax,-0x40(%ebp)\"},{address=\"0x0804903a\",func-name=\"main\",offset=\"631\",inst=\"mov -0x40(%ebp),%eax\"},{address=\"0x0804903d\",func-name=\"main\",offset=\"634\",inst=\"mov %eax,(%esp)\"},{address=\"0x08049040\",func-name=\"main\",offset=\"637\",inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08049045\",func-name=\"main\",offset=\"642\",inst=\"jmp 0x804906c <main+681>\"},{address=\"0x08049047\",func-name=\"main\",offset=\"644\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x0804904a\",func-name=\"main\",offset=\"647\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x0804904d\",func-name=\"main\",offset=\"650\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x08049050\",func-name=\"main\",offset=\"653\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08049053\",func-name=\"main\",offset=\"656\",inst=\"l
ea -0x14(%ebp),%eax\"},{address=\"0x08049056\",func-name=\"main\",offset=\"659\",inst=\"mov %eax,-0x40(%ebp)\"},{address=\"0x08049059\",func-name=\"main\",offset=\"662\",inst=\"mov -0x40(%ebp),%eax\"},{address=\"0x0804905c\",func-name=\"main\",offset=\"665\",inst=\"mov %eax,(%esp)\"},{address=\"0x0804905f\",func-name=\"main\",offset=\"668\",inst=\"call 0x8048bb4 <_ZNSsD1Ev plt>\"},{address=\"0x08049064\",func-name=\"main\",offset=\"673\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x08049067\",func-name=\"main\",offset=\"676\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x0804906a\",func-name=\"main\",offset=\"679\",inst=\"jmp 0x804908a <main+711>\"},{address=\"0x0804906c\",func-name=\"main\",offset=\"681\",inst=\"lea -0xd(%ebp),%eax\"},{address=\"0x0804906f\",func-name=\"main\",offset=\"684\",inst=\"mov %eax,(%esp)\"},{address=\"0x08049072\",func-name=\"main\",offset=\"687\",inst=\"call 0x8048b74 <_ZNSaIcED1Ev plt>\"},{address=\"0x08049077\",func-
name=\"main\",offset=\"692\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x0804907a\",func-name=\"main\",offset=\"695\",inst=\"mov %eax,(%esp)\"},{address=\"0x0804907d\",func-name=\"main\",offset=\"698\",inst=\"call 0x8049272 <_ZN6Person7do_thisEv>\"},{address=\"0x08049082\",func-name=\"main\",offset=\"703\",inst=\"jmp 0x80490a3 <main+736>\"},{address=\"0x08049084\",func-name=\"main\",offset=\"705\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x08049087\",func-name=\"main\",offset=\"708\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x0804908a\",func-name=\"main\",offset=\"711\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x0804908d\",func-name=\"main\",offset=\"714\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08049090\",func-name=\"main\",offset=\"717\",inst=\"lea -0xd(%ebp),%eax\"},{address=\"0x08049093\",func-name=\"main\",offset=\"720\",inst=\"mov %eax,(%esp)\"},{address=\"0x08049096\",func-name=\"main\",offset=\"723\",inst=\"call 0x8048b74 <_ZNSaI
cED1Ev plt>\"},{address=\"0x0804909b\",func-name=\"main\",offset=\"728\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x0804909e\",func-name=\"main\",offset=\"731\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x080490a1\",func-name=\"main\",offset=\"734\",inst=\"jmp 0x80490fa <main+823>\"},{address=\"0x080490a3\",func-name=\"main\",offset=\"736\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x080490a6\",func-name=\"main\",offset=\"739\",inst=\"mov %eax,(%esp)\"},{address=\"0x080490a9\",func-name=\"main\",offset=\"742\",inst=\"call 0x804911c <_ZN6Person8overloadEv>\"},{address=\"0x080490ae\",func-name=\"main\",offset=\"747\",inst=\"movl $0x0,0x4(%esp)\"},{address=\"0x080490b6\",func-name=\"main\",offset=\"755\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x080490b9\",func-name=\"main\",offset=\"758\",inst=\"mov %eax,(%esp)\"},{address=\"0x080490bc\",func-name=\"main\",offset=\"761\",inst=\"call 0x8049130 <_ZN6Person8overloadEi>\"},{address=\"0x080490c1\",func
-name=\"main\",offset=\"766\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x080490c4\",func-name=\"main\",offset=\"769\",inst=\"mov %eax,(%esp)\"},{address=\"0x080490c7\",func-name=\"main\",offset=\"772\",inst=\"call 0x8048db0 <_Z5func3R6Person>\"},{address=\"0x080490cc\",func-name=\"main\",offset=\"777\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x080490cf\",func-name=\"main\",offset=\"780\",inst=\"mov %eax,(%esp)\"},{address=\"0x080490d2\",func-name=\"main\",offset=\"783\",inst=\"call 0x8048cff <_Z5func4R6Person>\"},{address=\"0x080490d7\",func-name=\"main\",offset=\"788\",inst=\"mov $0x0,%ebx\"},{address=\"0x080490dc\",func-name=\"main\",offset=\"793\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x080490df\",func-name=\"main\",offset=\"796\",inst=\"mov %eax,(%esp)\"},{address=\"0x080490e2\",func-name=\"main\",offset=\"799\",inst=\"call 0x804921a <~Person>\"},{address=\"0x080490e7\",func-name=\"main\",offset=\"804\",inst=\"mov %ebx,%eax\"},{addres
s=\"0x080490e9\",func-name=\"main\",offset=\"806\",inst=\"add $0x5c,%esp\"},{address=\"0x080490ec\",func-name=\"main\",offset=\"809\",inst=\"pop %ecx\"},{address=\"0x080490ed\",func-name=\"main\",offset=\"810\",inst=\"pop %ebx\"},{address=\"0x080490ee\",func-name=\"main\",offset=\"811\",inst=\"pop %esi\"},{address=\"0x080490ef\",func-name=\"main\",offset=\"812\",inst=\"pop %ebp\"},{address=\"0x080490f0\",func-name=\"main\",offset=\"813\",inst=\"lea -0x4(%ecx),%esp\"},{address=\"0x080490f3\",func-name=\"main\",offset=\"816\",inst=\"ret \"},{address=\"0x080490f4\",func-name=\"main\",offset=\"817\",inst=\"mov %eax,-0x54(%ebp)\"},{address=\"0x080490f7\",func-name=\"main\",offset=\"820\",inst=\"mov %edx,-0x50(%ebp)\"},{address=\"0x080490fa\",func-name=\"main\",offset=\"823\",inst=\"mov -0x50(%ebp),%esi\"},{address=\"0x080490fd\",func-name=\"main\",offset=\"826\",inst=\"mov -0x54(%ebp),%ebx\"},{address=\"0x08049100\",func-name=\"main\",offset=\"829
\",inst=\"lea -0x38(%ebp),%eax\"},{address=\"0x08049103\",func-name=\"main\",offset=\"832\",inst=\"mov %eax,(%esp)\"},{address=\"0x08049106\",func-name=\"main\",offset=\"835\",inst=\"call 0x804921a <~Person>\"},{address=\"0x0804910b\",func-name=\"main\",offset=\"840\",inst=\"mov %ebx,-0x54(%ebp)\"},{address=\"0x0804910e\",func-name=\"main\",offset=\"843\",inst=\"mov %esi,-0x50(%ebp)\"},{address=\"0x08049111\",func-name=\"main\",offset=\"846\",inst=\"mov -0x54(%ebp),%eax\"},{address=\"0x08049114\",func-name=\"main\",offset=\"849\",inst=\"mov %eax,(%esp)\"},{address=\"0x08049117\",func-name=\"main\",offset=\"852\",inst=\"call 0x8048bd4 <_Unwind_Resume plt>\"}]\n";
+static const char* gv_disassemble2 =
+"asm_insns=[src_and_asm_line={line=\"91\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400a52\",func-name=\"main(int, char**)\",offset=\"18\",inst=\"lea -0x41(%rbp),%rax\"},{address=\"0x0000000000400a56\",func-name=\"main(int, char**)\",offset=\"22\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400a59\",func-name=\"main(int, char**)\",offset=\"25\",inst=\"callq 0x400868 <_ZNSaIcEC1Ev plt>\"},{address=\"0x0000000000400a5e\",func-name=\"main(int, char**)\",offset=\"30\",inst=\"lea -0x41(%rbp),%rdx\"},{address=\"0x0000000000400a62\",func-name=\"main(int, char**)\",offset=\"34\",inst=\"lea -0x50(%rbp),%rax\"},{address=\"0x0000000000400a66\",func-name=\"main(int, char**)\",offset=\"38\",inst=\"mov $0x40112d,%esi\"},{address=\"0x0000000000400a6b\",func-name=\"main(int, char**)\",offset=\"43\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400a6e\",func-name=\"main(int, char**)\",offset=\"46\",inst=\"callq 0x400848 <_ZNSsC1EPKcRKSaIcE plt>\"},{add
ress=\"0x0000000000400a73\",func-name=\"main(int, char**)\",offset=\"51\",inst=\"lea -0x31(%rbp),%rax\"},{address=\"0x0000000000400a77\",func-name=\"main(int, char**)\",offset=\"55\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400a7a\",func-name=\"main(int, char**)\",offset=\"58\",inst=\"callq 0x400868 <_ZNSaIcEC1Ev plt>\"},{address=\"0x0000000000400a7f\",func-name=\"main(int, char**)\",offset=\"63\",inst=\"lea -0x31(%rbp),%rdx\"},{address=\"0x0000000000400a83\",func-name=\"main(int, char**)\",offset=\"67\",inst=\"lea -0x40(%rbp),%rax\"},{address=\"0x0000000000400a87\",func-name=\"main(int, char**)\",offset=\"71\",inst=\"mov $0x401134,%esi\"},{address=\"0x0000000000400a8c\",func-name=\"main(int, char**)\",offset=\"76\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400a8f\",func-name=\"main(int, char**)\",offset=\"79\",inst=\"callq 0x400848 <_ZNSsC1EPKcRKSaIcE plt>\"},{address=\"0x0000000000400a94\",func-name=\"main(int, char**)\",offset=\"84\",inst=\"
lea -0x50(%rbp),%rdx\"},{address=\"0x0000000000400a98\",func-name=\"main(int, char**)\",offset=\"88\",inst=\"lea -0x40(%rbp),%rbx\"},{address=\"0x0000000000400a9c\",func-name=\"main(int, char**)\",offset=\"92\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400aa0\",func-name=\"main(int, char**)\",offset=\"96\",inst=\"mov $0xf,%ecx\"},{address=\"0x0000000000400aa5\",func-name=\"main(int, char**)\",offset=\"101\",inst=\"mov %rbx,%rsi\"},{address=\"0x0000000000400aa8\",func-name=\"main(int, char**)\",offset=\"104\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400aab\",func-name=\"main(int, char**)\",offset=\"107\",inst=\"callq 0x400d6c <Person::Person(std::string const&, std::string const&, unsigned int)>\"},{address=\"0x0000000000400ab0\",func-name=\"main(int, char**)\",offset=\"112\",inst=\"lea -0x40(%rbp),%rax\"},{address=\"0x0000000000400ab4\",func-name=\"main(int, char**)\",offset=\"116\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400
ab7\",func-name=\"main(int, char**)\",offset=\"119\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400abc\",func-name=\"main(int, char**)\",offset=\"124\",inst=\"jmp 0x400ad7 <main(int, char**)+151>\"},{address=\"0x0000000000400abe\",func-name=\"main(int, char**)\",offset=\"126\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400ac0\",func-name=\"main(int, char**)\",offset=\"128\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400ac3\",func-name=\"main(int, char**)\",offset=\"131\",inst=\"lea -0x40(%rbp),%rax\"},{address=\"0x0000000000400ac7\",func-name=\"main(int, char**)\",offset=\"135\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400aca\",func-name=\"main(int, char**)\",offset=\"138\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400acf\",func-name=\"main(int, char**)\",offset=\"143\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400ad2\",func-name=\"main(int, char**)\",offset=\"146\",inst=\"movslq %ebx,%rdx\"},{
address=\"0x0000000000400ad5\",func-name=\"main(int, char**)\",offset=\"149\",inst=\"jmp 0x400b0a <main(int, char**)+202>\"},{address=\"0x0000000000400ad7\",func-name=\"main(int, char**)\",offset=\"151\",inst=\"lea -0x31(%rbp),%rax\"},{address=\"0x0000000000400adb\",func-name=\"main(int, char**)\",offset=\"155\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400ade\",func-name=\"main(int, char**)\",offset=\"158\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400ae3\",func-name=\"main(int, char**)\",offset=\"163\",inst=\"lea -0x50(%rbp),%rax\"},{address=\"0x0000000000400ae7\",func-name=\"main(int, char**)\",offset=\"167\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400aea\",func-name=\"main(int, char**)\",offset=\"170\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400aef\",func-name=\"main(int, char**)\",offset=\"175\",inst=\"jmp 0x400b3a <main(int, char**)+250>\"},{address=\"0x0000000000400af1\",func-name=\"main(
int, char**)\",offset=\"177\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400af3\",func-name=\"main(int, char**)\",offset=\"179\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400af6\",func-name=\"main(int, char**)\",offset=\"182\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400afa\",func-name=\"main(int, char**)\",offset=\"186\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400afd\",func-name=\"main(int, char**)\",offset=\"189\",inst=\"callq 0x400fbe <Person::~Person()>\"},{address=\"0x0000000000400b02\",func-name=\"main(int, char**)\",offset=\"194\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400b05\",func-name=\"main(int, char**)\",offset=\"197\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400b08\",func-name=\"main(int, char**)\",offset=\"200\",inst=\"jmp 0x400b0a <main(int, char**)+202>\"},{address=\"0x0000000000400b0a\",func-name=\"main(int, char**)\",offset=\"202\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400b0c\",fun
c-name=\"main(int, char**)\",offset=\"204\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400b0f\",func-name=\"main(int, char**)\",offset=\"207\",inst=\"lea -0x31(%rbp),%rax\"},{address=\"0x0000000000400b13\",func-name=\"main(int, char**)\",offset=\"211\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400b16\",func-name=\"main(int, char**)\",offset=\"214\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400b1b\",func-name=\"main(int, char**)\",offset=\"219\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400b1e\",func-name=\"main(int, char**)\",offset=\"222\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400b21\",func-name=\"main(int, char**)\",offset=\"225\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400b23\",func-name=\"main(int, char**)\",offset=\"227\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400b26\",func-name=\"main(int, char**)\",offset=\"230\",inst=\"lea -0x50(%rbp),%rax\"},{address=\"0x0000000000400b2a\",func-n
ame=\"main(int, char**)\",offset=\"234\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400b2d\",func-name=\"main(int, char**)\",offset=\"237\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400b32\",func-name=\"main(int, char**)\",offset=\"242\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400b35\",func-name=\"main(int, char**)\",offset=\"245\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400b38\",func-name=\"main(int, char**)\",offset=\"248\",inst=\"jmp 0x400b96 <main(int, char**)+342>\"},{address=\"0x0000000000400b3a\",func-name=\"main(int, char**)\",offset=\"250\",inst=\"lea -0x41(%rbp),%rax\"},{address=\"0x0000000000400b3e\",func-name=\"main(int, char**)\",offset=\"254\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400b41\",func-name=\"main(int, char**)\",offset=\"257\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400b82\",func-name=\"main(int, char**)\",offset=\"322\",inst=\"lea -0x70(%rbp),%rax\"},{ad
dress=\"0x0000000000400b86\",func-name=\"main(int, char**)\",offset=\"326\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400b89\",func-name=\"main(int, char**)\",offset=\"329\",inst=\"callq 0x400fbe <Person::~Person()>\"},{address=\"0x0000000000400b8e\",func-name=\"main(int, char**)\",offset=\"334\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400b91\",func-name=\"main(int, char**)\",offset=\"337\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400b94\",func-name=\"main(int, char**)\",offset=\"340\",inst=\"jmp 0x400b96 <main(int, char**)+342>\"},{address=\"0x0000000000400b96\",func-name=\"main(int, char**)\",offset=\"342\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400b98\",func-name=\"main(int, char**)\",offset=\"344\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400b9b\",func-name=\"main(int, char**)\",offset=\"347\",inst=\"lea -0x41(%rbp),%rax\"},{address=\"0x0000000000400b9f\",func-name=\"main(int, char**)\",offset=\"351\",inst=\"mov %r
ax,%rdi\"},{address=\"0x0000000000400ba2\",func-name=\"main(int, char**)\",offset=\"354\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400ba7\",func-name=\"main(int, char**)\",offset=\"359\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400baa\",func-name=\"main(int, char**)\",offset=\"362\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400bad\",func-name=\"main(int, char**)\",offset=\"365\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400bb0\",func-name=\"main(int, char**)\",offset=\"368\",inst=\"callq 0x400888 <_Unwind_Resume plt>\"}]},src_and_asm_line={line=\"92\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400b46\",func-name=\"main(int, char**)\",offset=\"262\",inst=\"callq 0x400994 <func1()>\"}]},src_and_asm_line={line=\"93\",file=\"fooprog.cc\",line_asm_insn=[]},src_and_asm_line={line=\"94\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400b4b\",func-name=\"main(int, char**)\",offset=\"267\",inst=\"mov
$0x2,%esi\"},{address=\"0x0000000000400b50\",func-name=\"main(int, char**)\",offset=\"272\",inst=\"mov $0x1,%edi\"},{address=\"0x0000000000400b55\",func-name=\"main(int, char**)\",offset=\"277\",inst=\"callq 0x4009a5 <func2(int, int)>\"}]},src_and_asm_line={line=\"95\",file=\"fooprog.cc\",line_asm_insn=[]},src_and_asm_line={line=\"96\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400b5a\",func-name=\"main(int, char**)\",offset=\"282\",inst=\"lea -0x21(%rbp),%rax\"},{address=\"0x0000000000400b5e\",func-name=\"main(int, char**)\",offset=\"286\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400b61\",func-name=\"main(int, char**)\",offset=\"289\",inst=\"callq 0x400868 <_ZNSaIcEC1Ev plt>\"},{address=\"0x0000000000400b66\",func-name=\"main(int, char**)\",offset=\"294\",inst=\"lea -0x21(%rbp),%rdx\"},{address=\"0x0000000000400b6a\",func-name=\"main(int, char**)\",offset=\"298\",inst=\"lea -0x30(%rbp),%rax\"},{address=\"0x0000000000400b6e\",func-name=\
"main(int, char**)\",offset=\"302\",inst=\"mov $0x401138,%esi\"},{address=\"0x0000000000400b73\",func-name=\"main(int, char**)\",offset=\"307\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400b76\",func-name=\"main(int, char**)\",offset=\"310\",inst=\"callq 0x400848 <_ZNSsC1EPKcRKSaIcE plt>\"},{address=\"0x0000000000400b7b\",func-name=\"main(int, char**)\",offset=\"315\",inst=\"jmp 0x400bb5 <main(int, char**)+373>\"},{address=\"0x0000000000400b7d\",func-name=\"main(int, char**)\",offset=\"317\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400b7f\",func-name=\"main(int, char**)\",offset=\"319\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400bb5\",func-name=\"main(int, char**)\",offset=\"373\",inst=\"lea -0x30(%rbp),%rdx\"},{address=\"0x0000000000400bb9\",func-name=\"main(int, char**)\",offset=\"377\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400bbd\",func-name=\"main(int, char**)\",offset=\"381\",inst=\"mov %rdx,%rsi\"},{address=\"0
x0000000000400bc0\",func-name=\"main(int, char**)\",offset=\"384\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400bc3\",func-name=\"main(int, char**)\",offset=\"387\",inst=\"callq 0x400e1c <Person::set_first_name(std::string const&)>\"},{address=\"0x0000000000400bc8\",func-name=\"main(int, char**)\",offset=\"392\",inst=\"lea -0x30(%rbp),%rax\"},{address=\"0x0000000000400bcc\",func-name=\"main(int, char**)\",offset=\"396\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400bcf\",func-name=\"main(int, char**)\",offset=\"399\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400bd4\",func-name=\"main(int, char**)\",offset=\"404\",inst=\"jmp 0x400bef <main(int, char**)+431>\"},{address=\"0x0000000000400bd6\",func-name=\"main(int, char**)\",offset=\"406\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400bd8\",func-name=\"main(int, char**)\",offset=\"408\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400bdb\",func-name=\"main(int, char**)\",
offset=\"411\",inst=\"lea -0x30(%rbp),%rax\"},{address=\"0x0000000000400bdf\",func-name=\"main(int, char**)\",offset=\"415\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400be2\",func-name=\"main(int, char**)\",offset=\"418\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400be7\",func-name=\"main(int, char**)\",offset=\"423\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400bea\",func-name=\"main(int, char**)\",offset=\"426\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400bed\",func-name=\"main(int, char**)\",offset=\"429\",inst=\"jmp 0x400c1e <main(int, char**)+478>\"},{address=\"0x0000000000400bef\",func-name=\"main(int, char**)\",offset=\"431\",inst=\"lea -0x21(%rbp),%rax\"},{address=\"0x0000000000400bf3\",func-name=\"main(int, char**)\",offset=\"435\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400bf6\",func-name=\"main(int, char**)\",offset=\"438\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400c23
\",func-name=\"main(int, char**)\",offset=\"483\",inst=\"lea -0x21(%rbp),%rax\"},{address=\"0x0000000000400c27\",func-name=\"main(int, char**)\",offset=\"487\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c2a\",func-name=\"main(int, char**)\",offset=\"490\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400c2f\",func-name=\"main(int, char**)\",offset=\"495\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400c32\",func-name=\"main(int, char**)\",offset=\"498\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400c35\",func-name=\"main(int, char**)\",offset=\"501\",inst=\"jmpq 0x400cf8 <main(int, char**)+696>\"}]},src_and_asm_line={line=\"97\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400bfb\",func-name=\"main(int, char**)\",offset=\"443\",inst=\"lea -0x11(%rbp),%rax\"},{address=\"0x0000000000400bff\",func-name=\"main(int, char**)\",offset=\"447\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c02\",func-name=\"main
(int, char**)\",offset=\"450\",inst=\"callq 0x400868 <_ZNSaIcEC1Ev plt>\"},{address=\"0x0000000000400c07\",func-name=\"main(int, char**)\",offset=\"455\",inst=\"lea -0x11(%rbp),%rdx\"},{address=\"0x0000000000400c0b\",func-name=\"main(int, char**)\",offset=\"459\",inst=\"lea -0x20(%rbp),%rax\"},{address=\"0x0000000000400c0f\",func-name=\"main(int, char**)\",offset=\"463\",inst=\"mov $0x40113c,%esi\"},{address=\"0x0000000000400c14\",func-name=\"main(int, char**)\",offset=\"468\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c17\",func-name=\"main(int, char**)\",offset=\"471\",inst=\"callq 0x400848 <_ZNSsC1EPKcRKSaIcE plt>\"},{address=\"0x0000000000400c1c\",func-name=\"main(int, char**)\",offset=\"476\",inst=\"jmp 0x400c3a <main(int, char**)+506>\"},{address=\"0x0000000000400c1e\",func-name=\"main(int, char**)\",offset=\"478\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400c20\",func-name=\"main(int, char**)\",offset=\"480\",inst=\"mov %rax,%r12\"}
,{address=\"0x0000000000400c3a\",func-name=\"main(int, char**)\",offset=\"506\",inst=\"lea -0x20(%rbp),%rdx\"},{address=\"0x0000000000400c3e\",func-name=\"main(int, char**)\",offset=\"510\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400c42\",func-name=\"main(int, char**)\",offset=\"514\",inst=\"mov %rdx,%rsi\"},{address=\"0x0000000000400c45\",func-name=\"main(int, char**)\",offset=\"517\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c48\",func-name=\"main(int, char**)\",offset=\"520\",inst=\"callq 0x400e42 <Person::set_family_name(std::string const&)>\"},{address=\"0x0000000000400c4d\",func-name=\"main(int, char**)\",offset=\"525\",inst=\"lea -0x20(%rbp),%rax\"},{address=\"0x0000000000400c51\",func-name=\"main(int, char**)\",offset=\"529\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c54\",func-name=\"main(int, char**)\",offset=\"532\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400c59\",func-name=\"main(int, char*
*)\",offset=\"537\",inst=\"jmp 0x400c74 <main(int, char**)+564>\"},{address=\"0x0000000000400c5b\",func-name=\"main(int, char**)\",offset=\"539\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400c5d\",func-name=\"main(int, char**)\",offset=\"541\",inst=\"mov %rax,%r12\"},{address=\"0x0000000000400c60\",func-name=\"main(int, char**)\",offset=\"544\",inst=\"lea -0x20(%rbp),%rax\"},{address=\"0x0000000000400c64\",func-name=\"main(int, char**)\",offset=\"548\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c67\",func-name=\"main(int, char**)\",offset=\"551\",inst=\"callq 0x400828 <_ZNSsD1Ev plt>\"},{address=\"0x0000000000400c6c\",func-name=\"main(int, char**)\",offset=\"556\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400c6f\",func-name=\"main(int, char**)\",offset=\"559\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400c72\",func-name=\"main(int, char**)\",offset=\"562\",inst=\"jmp 0x400c8e <main(int, char**)+590>\"},{address=\"0x0000000000400
c74\",func-name=\"main(int, char**)\",offset=\"564\",inst=\"lea -0x11(%rbp),%rax\"},{address=\"0x0000000000400c78\",func-name=\"main(int, char**)\",offset=\"568\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c7b\",func-name=\"main(int, char**)\",offset=\"571\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400c93\",func-name=\"main(int, char**)\",offset=\"595\",inst=\"lea -0x11(%rbp),%rax\"},{address=\"0x0000000000400c97\",func-name=\"main(int, char**)\",offset=\"599\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c9a\",func-name=\"main(int, char**)\",offset=\"602\",inst=\"callq 0x400858 <_ZNSaIcED1Ev plt>\"},{address=\"0x0000000000400c9f\",func-name=\"main(int, char**)\",offset=\"607\",inst=\"mov %r12,%rax\"},{address=\"0x0000000000400ca2\",func-name=\"main(int, char**)\",offset=\"610\",inst=\"movslq %ebx,%rdx\"},{address=\"0x0000000000400ca5\",func-name=\"main(int, char**)\",offset=\"613\",inst=\"jmp 0x400cf8 <main(int, char
**)+696>\"}]},src_and_asm_line={line=\"98\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400c80\",func-name=\"main(int, char**)\",offset=\"576\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400c84\",func-name=\"main(int, char**)\",offset=\"580\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400c87\",func-name=\"main(int, char**)\",offset=\"583\",inst=\"callq 0x400e6c <Person::do_this()>\"},{address=\"0x0000000000400c8c\",func-name=\"main(int, char**)\",offset=\"588\",inst=\"jmp 0x400ca7 <main(int, char**)+615>\"},{address=\"0x0000000000400c8e\",func-name=\"main(int, char**)\",offset=\"590\",inst=\"mov %edx,%ebx\"},{address=\"0x0000000000400c90\",func-name=\"main(int, char**)\",offset=\"592\",inst=\"mov %rax,%r12\"}]},src_and_asm_line={line=\"99\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400ca7\",func-name=\"main(int, char**)\",offset=\"615\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400cab\",func-name=\"m
ain(int, char**)\",offset=\"619\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400cae\",func-name=\"main(int, char**)\",offset=\"622\",inst=\"callq 0x400f90 <Person::overload()>\"}]},src_and_asm_line={line=\"100\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400cb3\",func-name=\"main(int, char**)\",offset=\"627\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400cb7\",func-name=\"main(int, char**)\",offset=\"631\",inst=\"mov $0x0,%esi\"},{address=\"0x0000000000400cbc\",func-name=\"main(int, char**)\",offset=\"636\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400cbf\",func-name=\"main(int, char**)\",offset=\"639\",inst=\"callq 0x400fa6 <Person::overload(int)>\"}]},src_and_asm_line={line=\"101\",file=\"fooprog.cc\",line_asm_insn=[]},src_and_asm_line={line=\"102\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400cc4\",func-name=\"main(int, char**)\",offset=\"644\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400cc8\
",func-name=\"main(int, char**)\",offset=\"648\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400ccb\",func-name=\"main(int, char**)\",offset=\"651\",inst=\"callq 0x4009c1 <func3(Person&)>\"}]},src_and_asm_line={line=\"103\",file=\"fooprog.cc\",line_asm_insn=[]},src_and_asm_line={line=\"104\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400cd0\",func-name=\"main(int, char**)\",offset=\"656\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400cd4\",func-name=\"main(int, char**)\",offset=\"660\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400cd7\",func-name=\"main(int, char**)\",offset=\"663\",inst=\"callq 0x4009db <func4(Person&)>\"}]},src_and_asm_line={line=\"105\",file=\"fooprog.cc\",line_asm_insn=[]},src_and_asm_line={line=\"106\",file=\"fooprog.cc\",line_asm_insn=[{address=\"0x0000000000400cdc\",func-name=\"main(int, char**)\",offset=\"668\",inst=\"mov $0x0,%ebx\"},{address=\"0x0000000000400ce1\",func-name=\"main(int, char**)\",offset
=\"673\",inst=\"lea -0x70(%rbp),%rax\"},{address=\"0x0000000000400ce5\",func-name=\"main(int, char**)\",offset=\"677\",inst=\"mov %rax,%rdi\"},{address=\"0x0000000000400ce8\",func-name=\"main(int, char**)\",offset=\"680\",inst=\"callq 0x400fbe <Person::~Person()>\"},{address=\"0x0000000000400ced\",func-name=\"main(int, char**)\",offset=\"685\",inst=\"mov %ebx,%eax\"}]}]";
+
+
static const char* gv_file_list1 =
"files=[{file=\"fooprog.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/tests/fooprog.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/locale_facets.h\",fullname=\"/usr/include/c++/4.3.2/bits/locale_facets.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/x86_64-redhat-linux/bits/ctype_base.h\",fullname=\"/usr/include/c++/4.3.2/x86_64-redhat-linux/bits/ctype_base.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/numeric_traits.h\",fullname=\"/usr/include/c++/4.3.2/ext/numeric_traits.h\"},{file=\"/usr/include/wctype.h\",fullname=\"/usr/include/wctype.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/locale_classes.h\",fullname=\"/usr/include/c++/4.3.2/bits/locale_classes.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_string.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/basic_string.tcc\"}
,{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stringfwd.h\",fullname=\"/usr/include/c++/4.3.2/bits/stringfwd.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/x86_64-redhat-linux/bits/atomic_word.h\",fullname=\"/usr/include/c++/4.3.2/x86_64-redhat-linux/bits/atomic_word.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/x86_64-redhat-linux/bits/gthr-default.h\",fullname=\"/usr/include/c++/4.3.2/x86_64-redhat-linux/bits/gthr-default.h\"},{file=\"/usr/include/bits/pthreadtypes.h\",fullname=\"/usr/include/bits/pthreadtypes.h\"},{file=\"/usr/include/locale.h\",fullname=\"/usr/include/locale.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/include/_G_config.h\",fullname=\"/usr/include/_G_config.h\"},{file=\"/usr/include/bits/types.h\",fullname=\"/usr/include/bits/t
ypes.h\"},{file=\"/usr/include/time.h\",fullname=\"/usr/include/time.h\"},{file=\"/usr/include/wchar.h\",fullname=\"/usr/include/wchar.h\"},{file=\"/home/dodji/.ccache/fooprog.tmp.tutu.605.ii\"},{file=\"/usr/include/libio.h\",fullname=\"/usr/include/libio.h\"},{file=\"/usr/include/stdio.h\",fullname=\"/usr/include/stdio.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/include/stddef.h\",fullname=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/include/stddef.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/debug/debug.h\",fullname=\"/usr/include/c++/4.3.2/debug/debug.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/cpp_type_traits.h\",fullname=\"/usr/include/c++/4.3.2/bits/cpp_type_traits.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../inclu
de/c++/4.3.2/cwctype\",fullname=\"/usr/include/c++/4.3.2/cwctype\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_string.h\",fullname=\"/usr/include/c++/4.3.2/bits/basic_string.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/ios_base.h\",fullname=\"/usr/include/c++/4.3.2/bits/ios_base.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/clocale\",fullname=\"/usr/include/c++/4.3.2/clocale\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/cstdio\",fullname=\"/usr/include/c++/4.3.2/cstdio\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/cwchar\",fullname=\"/usr/include/c++/4.3.2/cwchar\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/cstddef\",fullname=\"/usr/include/c++/4.3.2/cstddef\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream\",fulln
ame=\"/usr/include/c++/4.3.2/iostream\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream\",fullname=\"/usr/include/c++/4.3.2/iostream\"},{file=\"nmv-safe-ptr.h\"},{file=\"nmv-safe-ptr-utils.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/list.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/list.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algo.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algo.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-proc-mgr.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_
64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_types.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_types.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_list.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_list.h\"},{file=\"nmv-proc-mgr.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-proc-mgr.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-proc-mgr.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-proc-utils.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_string.h\",fullname=\"/usr/include/c++/4.3.2/bits/basic_string.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/refptr.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/refptr.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4
.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/backward/auto_ptr.h\",fullname=\"/usr/include/c++/4.3.2/backward/auto_ptr.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"nmv-proc-utils.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-proc-utils.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/lib/gcc/x86_64-redh
at-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"nmv-delete-statement.cc\"},{file=\"nmv-sql-statement.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-delete-statement.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-delete-statement.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/vector.tcc\",fulln
ame=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/..
/../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"nmv-insert-statement.cc\"},{file=\"nmv-sql-statement.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-insert-statement.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-insert-statement.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-sql-statement.cc\"},{file=\"nmv-sql-statement.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-sql-statement.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/thread.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++
/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_funcs.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_funcs.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_types.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_types.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/deque.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/deque.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3
.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_stack.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_stack.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"nmv-transaction.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_deque.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_deque.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-transaction.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-transaction.cc\"},{file=\"nmv-tools.cc\"},{file=\"nmv-transaction.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/u
string.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-buffer.h\"},{file=\"nmv-tools.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-tools.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/thread.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/vector.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"nmv-conf-manager.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_constru
ct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_pair.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_pair.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_function.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_function.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_map.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_map.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../.
./../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"nmv-safe-ptr.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\"},{file=\"nmv-libxml-utils.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_tree.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/ios_base.h\",fullname=\"/usr/include/c++/4.3.2/bits/ios_base.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-conf-manager.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-conf-manager.cc\"},{file=\"/usr/l
ib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/vector.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/in
clude/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"nmv-parsing-utils.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-parsing-utils.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-parsing-utils.cc\"},{file=\"nmv-safe-ptr-utils.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/thread.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-safe-ptr.h\"},{file=\"nmv-connection.cc\"},{file=\"nmv-connection.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/com
mon/nmv-connection.cc\"},{file=\"nmv-dynamic-module.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-safe-ptr-utils.h\"},{file=\"nmv-connection-manager.cc\"},{file=\"nmv-safe-ptr.h\"},{file=\"nmv-i-connection-manager-driver.h\"},{file=\"nmv-connection-manager.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-connection-manager.cc\"},{file=\"nmv-option-utils.cc\"},{file=\"nmv-option-utils.h\"},{file=\"nmv-option-utils.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-option-utils.cc\"},{file=\"nmv-sequence.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/thread.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"nmv-sequence.cc\"},{file=\"nmv-safe-ptr.h\"},{file=\"nmv-sequence.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-sequence.cc\"},{file=\"nmv-dynamic-module.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bi
ts/vector.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"nmv-safe-ptr-utils.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_funcs.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_funcs.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_types.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_types.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_pair.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_pair.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_function.h\",fullname=\"/u
sr/include/c++/4.3.2/bits/stl_function.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_map.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_map.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../includ
e/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"nmv-plugin.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_tree.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\"},{file=\"nmv-plugin.h\"},{file=\"nmv-libxml-utils.h\"},{file=\"nmv-safe-ptr.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/fileutils.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/fileutils.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-plugin.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-plugin.cc\"},{file=\"/usr/include/glibm
m-2.4/glibmm/thread.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/vector.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64
-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\"},{file=\"nmv-env.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-env.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-env.cc\"},{file=\"nmv-date-utils.cc\"},{file=\"nmv-date-utils.cc\",fullname
=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-date-utils.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/thread.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/vector.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"nmv-dynamic-module.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_pair.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_pair.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_string.h\",fullname=\"/usr/include/c++/4.3.2/bits/basic_string.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../i
nclude/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_function.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_function.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_map.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_map.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/
lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"nmv-dynamic-module.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_tree.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\"},{file=\"nmv-libxml-utils.h\"},{file=\"nmv-safe-ptr-utils.h\"},{file=\"nmv-safe-ptr.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-dynamic-module.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-dynamic-module.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/thread.h\",fu
llname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"nmv-initializer.cc\"},{file=\"nmv-initializer.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-initializer.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-exception.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/stdexcept\",fullname=\"/usr/include/c++/4.3.2/stdexcept\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/exception\",fullname=\"/usr/include/c++/4.3.2/exception\"},{file=\"nmv-exception.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-exception.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-scope-logger.cc\"},{file=\"nmv-safe-ptr.h\"},{file=\"nmv-scope-logger.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-scope-logger.cc\"},{file=\"/usr/lib/gc
c/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/vector.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/tr1_impl/unordered_map\",fullname=\"/usr/include/c++/4.3.2/tr1_impl/unordered_map\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/list.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/list.tcc\"},{file=\"/usr/include/glibmm-2.4/glibmm/thread.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/thread.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_string.h\",fullname=\"/usr/include/c++/4.3.2/bits/basic_string.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/char_traits.h\",fullname=\"/usr/include/c++/4.
3.2/bits/char_traits.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream\",fullname=\"/usr/include/c++/4.3.2/iostream\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_funcs.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_funcs.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_types.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_types.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/tr1_impl/hashtable\",fullname=\"/usr/include/c++/4.3.2/tr1_impl/hashtable\"},{file=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\",
fullname=\"/usr/include/glibmm-2.4/glibmm/arrayhandle.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_function.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_function.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_list.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_list.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"/usr
/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_pair.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_pair.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h\"},{file=\"nmv-log-stream.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/tr1_impl/hashtable_policy.h\",fullname=\"/usr/include/c++/4.3.2/tr1_impl/hashtable_policy.h\"},{file=\"nmv-safe-ptr-utils.h\"},{file=\"nmv-safe-ptr.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/ios_base.h\",fullname=\"/usr/include/c++/4.3.2/bits/ios_base.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-log-stream.cc\",fu
llname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-log-stream.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"nmv-safe-ptr.h\"},{file=\"nmv-libxml-utils.cc\"},{file=\"nmv-libxml-utils.h\"},{file=\"nmv-libxml-utils.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-libxml-utils.cc\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_pair.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_pair.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_function.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_function.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_map.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_map.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../
../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"nmv-object.cc\"},{file=\"nmv-safe-ptr.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_tree.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"nmv-object.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-object.cc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/vector.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/vector.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_uninitialized.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_uninitialized.h\"},{file
=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_string.tcc\",fullname=\"/usr/include/c++/4.3.2/bits/basic_string.tcc\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_funcs.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_funcs.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator_base_types.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator_base_types.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/type_traits.h\",fullname=\"/usr/include/c++/4.3.2/ext/type_traits.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_algobase.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_algobase.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_construct.h\"},{file=\"/usr
/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_function.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_function.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/char_traits.h\",fullname=\"/usr/include/c++/4.3.2/bits/char_traits.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_string.h\",fullname=\"/usr/include/c++/4.3.2/bits/basic_string.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/allocator.h\",fullname=\"/usr/include/c++/4.3.2/bits/allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/new_allocator.h\",fullname=\"/usr/include/c++/4.3.2/ext/new_allocator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_iterator.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_iterator.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.
3.2/bits/stl_vector.h\",fullname=\"/usr/include/c++/4.3.2/bits/stl_vector.h\"},{file=\"nmv-ustring.cc\"},{file=\"nmv-safe-ptr-utils.h\"},{file=\"nmv-safe-ptr.h\"},{file=\"/usr/include/glibmm-2.4/glibmm/ustring.h\",fullname=\"/usr/include/glibmm-2.4/glibmm/ustring.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/new\",fullname=\"/usr/include/c++/4.3.2/new\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ext/atomicity.h\",fullname=\"/usr/include/c++/4.3.2/ext/atomicity.h\"},{file=\"/usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/x86_64-redhat-linux/bits/gthr-default.h\",fullname=\"/usr/include/c++/4.3.2/x86_64-redhat-linux/bits/gthr-default.h\"},{file=\"nmv-ustring.cc\",fullname=\"/home/dodji/devel/git/nemiver.git/src/common/nmv-ustring.cc\"}]";
@@ -859,7 +864,7 @@ test_breakpoint ()
void
test_disassemble ()
{
- typedef list<IDebugger::AsmInstr> AsmInstrList;
+ typedef list<IDebugger::Asm> AsmInstrList;
AsmInstrList instrs;
UString::size_type cur = 0;
GDBMIParser parser (gv_disassemble0);
@@ -876,6 +881,7 @@ test_disassemble ()
}
std::cout << "========== end of asm instructions =============\n";
+
Output::ResultRecord record;
cur = 0;
parser.push_input (gv_disassemble1);
@@ -884,6 +890,12 @@ test_disassemble ()
nb_instrs = record.asm_instruction_list ().size ();
// There should be 253 assembly instructions in gv_disassemble1.
BOOST_REQUIRE_MESSAGE (nb_instrs == 253, "nb_instrs was: " << nb_instrs);
+
+ parser.push_input (gv_disassemble2);
+ cur = 0;
+ BOOST_REQUIRE (parser.parse_asm_instruction_list (cur, cur, instrs));
+ BOOST_REQUIRE_MESSAGE (instrs.size () == 269,
+ "nb instrs was: " << instrs.size ());
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]