Go to the documentation of this file.
26 #ifndef __NMV_I_DEBUGGER_H__
27 #define __NMV_I_DEBUGGER_H__
63 NEMIVER_BEGIN_NAMESPACE (
nemiver)
113 int m_initial_ignore_count;
117 bool m_is_read_watchpoint;
118 bool m_is_write_watchpoint;
125 vector<Breakpoint> m_sub_breakpoints;
131 int m_parent_breakpoint_number;
150 if (is_sub_breakpoint ())
166 if (is_sub_breakpoint ())
179 void id (
string& s)
const
189 int number()
const {
return sub_breakpoint_number();}
191 void number (
int a_in) {m_number = a_in;}
202 if (!m_address.
empty ())
203 m_is_pending =
false;
206 const string&
function ()
const {
return m_function;}
207 void function (
const string &a_in) {m_function = a_in;}
210 void expression (
const string &a_expr) {m_expression = a_expr;}
218 int line ()
const {
return m_line;}
219 void line (
int a_in) {m_line = a_in;}
222 void condition (
const string &a_cond) {m_condition = a_cond;}
259 b.m_parent_breakpoint_number = m_number;
260 m_sub_breakpoints.push_back (b);
265 return m_sub_breakpoints;
280 m_type = STANDARD_BREAKPOINT_TYPE;
285 m_file_name.clear ();
286 m_file_full_name.clear ();
288 m_condition.clear ();
290 m_initial_ignore_count = 0;
292 m_is_read_watchpoint =
false;
293 m_is_write_watchpoint =
false;
294 m_sub_breakpoints.clear ();
295 m_parent_breakpoint_number = 0;
296 m_is_pending =
false;
322 void init (Kind a_kind,
int a_index,
323 const UString &a_function_name,
329 function_name (a_function_name);
330 file_name (a_file_name);
331 line_number (a_line_number);
341 init (a_kind, a_index, a_function_name,
342 a_file_name, a_line_number);
347 init (CANCEL, 0,
"",
"", 0);
353 int index ()
const {
return m_index;}
354 void index (
int a_index) {m_index = a_index;}
374 string m_function_name;
375 map<string, string> m_args;
395 bool operator== (
const Frame &a)
const
397 return (level () == a.
level ()
400 && library () == a.
library ());
403 bool operator!= (
const Frame &a)
const {
return !(operator== (a));}
420 const map<string, string>&
args ()
const {
return m_args;}
421 map<string, string>&
args () {
return m_args;}
423 int level ()
const {
return m_level;}
424 void level (
int a_level) {m_level = a_level;}
432 int line ()
const {
return m_line;}
433 void line (
int a_in) {m_line = a_in;}
435 const string&
library ()
const {
return m_library;}
436 void library (
const string &a_library) {m_library = a_library;}
444 m_function_name =
"";
448 m_file_full_name =
"";
456 typedef sigc::slot<void, const vector<IDebugger::Frame>&>
458 typedef sigc::slot<void, const map<int, IDebugger::VariableList>& >
468 UNDEFINED_FORMAT = 0,
514 unsigned int m_num_expected_children;
522 bool m_needs_revisualizing;
524 bool m_has_more_children;
531 bool a_in_scope =
true,
533 : m_internal_name (a_internal_name),
539 m_num_expected_children (0),
540 m_in_scope (a_in_scope),
541 m_format (UNDEFINED_FORMAT),
542 m_needs_revisualizing (false),
543 m_is_dynamic (false),
544 m_has_more_children (false)
551 bool a_in_scope =
true,
553 : m_debugger (a_dbg),
558 m_num_expected_children (0),
559 m_in_scope (a_in_scope),
560 m_format (UNDEFINED_FORMAT),
561 m_needs_revisualizing (false),
562 m_is_dynamic (false),
563 m_has_more_children (false)
570 : m_debugger (a_dbg),
573 m_num_expected_children (0),
575 m_format (UNDEFINED_FORMAT),
576 m_needs_revisualizing (false),
577 m_is_dynamic (false),
578 m_has_more_children (false)
584 : m_debugger (a_dbg),
586 m_num_expected_children (0),
588 m_format (UNDEFINED_FORMAT),
589 m_needs_revisualizing (false),
590 m_is_dynamic (false),
591 m_has_more_children (false)
601 && !internal_name ().empty ()
626 for (VariableList::const_iterator it = members ().begin ();
627 it != m_members.end ();
643 VariableList::const_iterator it;
645 for (it = parent ()->members ().begin ();
646 it != parent ()->members ().end ();
651 THROW (
"fatal: should not be reached");
656 return equals (a_other);
665 if (!internal_name ().empty ()
668 return equals_by_value (a_other);
679 if (name () != a_other.
name ()
680 || type () != a_other.
type ())
682 if (members ().empty () != a_other.
members ().empty ())
684 VariableList::const_iterator it0, it1;
685 for (it0 = members ().begin (), it1 = a_other.
members ().begin ();
686 it0 != members ().end ();
688 if (it1 == a_other.
members ().end ())
690 if (!(*it0)->equals_by_value (**it1))
693 if (it1 != a_other.
members ().end ())
700 if (!a_var) {
return;}
701 m_members.push_back (a_var);
702 a_var->parent (
this);
722 {
return internal_name ().empty ()
733 m_name_caption = a_name;
745 void type (
const string &a_type) {m_type = a_type;}
757 return m_parent != 0;
777 if (internal_name ().empty ())
778 return !has_parent ();
779 return (internal_name ().find (
".") == UString::npos);
803 if (!has_parent ()) {
806 return parent ()->root ();
810 bool a_show_var_name =
false,
811 const UString &a_indent_str=
"")
const
813 if (a_show_var_name) {
815 a_str += a_indent_str + name ();
818 if (!internal_name ().empty ()) {
819 a_str +=
"(" + internal_name () +
")";
822 if (value () !=
"") {
823 if (a_show_var_name) {
828 if (members ().empty ()) {
831 UString indent_str = a_indent_str +
" ";
832 a_str +=
"\n" + a_indent_str +
"{";
833 VariableList::const_iterator it;
834 for (it = members ().begin (); it != members ().end (); ++it) {
835 if (!(*it)) {
continue;}
837 (*it)->to_string (a_str,
true, indent_str);
839 a_str +=
"\n" + a_indent_str +
"}";
848 if (!a_qname.raw ().empty () && a_qname.raw ()[0] ==
'*') {
849 a_qname.erase (0, 1);
851 }
else if (parent ()) {
852 parent ()->build_qname (qname);
854 if (parent () && parent ()->name ()[0] ==
'*') {
855 qname +=
"->" + name ();
857 qname +=
"." + name ();
861 THROW (
"should not be reached");
869 a_qname = internal_name ();
870 }
else if (parent ()) {
871 parent ()->build_qname (qname);
873 qname +=
"." + name ();
876 THROW (
"should not be reached");
882 m_dereferenced = a_derefed;
887 return m_dereferenced;
892 if (m_dereferenced) {
return true;}
898 if (a_other.
type () != type ()) {
903 if (members ().size () != a_other.
members ().size ()) {
907 VariableList::const_iterator it1, it2;
909 for (it1=members ().begin (), it2=a_other.
members ().begin ();
910 it1 != members ().end ();
914 if (!(*it1)->is_copyable (**it2))
922 if (!is_copyable (a_other))
924 m_name = a_other.m_name;
925 m_name_caption = a_other.m_name_caption;
926 m_value = a_other.m_value;
927 VariableList::iterator it1;
928 VariableList::const_iterator it2;
929 for (it1=m_members.begin (), it2=a_other.m_members.begin ();
930 it1 != m_members.end ();
932 (*it1)->copy (**it2);
939 m_name = a_other.m_name;
940 m_value = a_other.m_value;
941 m_type = a_other.m_type;
942 VariableList::const_iterator it;
944 for (it = a_other.m_members.begin ();
945 it != a_other.m_members.end ();
956 return m_num_expected_children;
961 m_num_expected_children = a_in;
966 return ((m_num_expected_children != 0)
967 || (has_more_children ()));
974 return (expects_children () && members ().empty ());
984 if (internal_name () == a_internal_path) {
985 result.
reset (
this,
true );
988 for (VariableList::const_iterator it = m_members.begin ();
989 it != m_members.end ();
991 if (*it && (*it)->internal_name () == a_internal_path) {
994 result = (*it)->get_descendant (a_internal_path);
1004 return m_path_expression;
1008 m_path_expression = a_expr;
1047 str =
"NOT_STARTED";
1049 case INFERIOR_LOADED:
1050 str =
"INFERIOR_LOADED";
1058 case PROGRAM_EXITED:
1059 str =
"PROGRAM_EXITED";
1084 if (a_reason == EXITED_SIGNALLED
1085 || a_reason == EXITED
1086 || a_reason == EXITED_NORMALLY)
1091 typedef sigc::slot<void,
1092 const std::map<string, IDebugger::Breakpoint>&>
1103 virtual sigc::signal<void>& engine_died_signal ()
const = 0;
1105 virtual sigc::signal<void>& program_finished_signal ()
const = 0;
1107 virtual sigc::signal<void, const UString&>&
1108 console_message_signal ()
const = 0;
1110 virtual sigc::signal<void, const UString&>&
1111 target_output_message_signal ()
const = 0;
1113 virtual sigc::signal<void, const UString&>& log_message_signal ()
const=0;
1115 virtual sigc::signal<void,
1118 command_done_signal ()
const=0;
1120 virtual sigc::signal<void>& connected_to_server_signal ()
const=0;
1122 virtual sigc::signal<void>& detached_from_target_signal ()
const=0;
1126 virtual sigc::signal<void>& inferior_re_run_signal ()
const = 0;
1128 virtual sigc::signal<void,
1132 breakpoint_deleted_signal ()
const=0;
1139 virtual sigc::signal<void,
1140 const map<string, IDebugger::Breakpoint>&,
1142 breakpoints_list_signal ()
const=0;
1144 virtual sigc::signal<void,
1145 const std::map<string, IDebugger::Breakpoint>&,
1147 breakpoints_set_signal ()
const = 0;
1149 virtual sigc::signal<void,
1150 const vector<OverloadsChoiceEntry>&,
1152 got_overloads_choice_signal ()
const=0;
1154 virtual sigc::signal<void,
1162 const UString& >& stopped_signal ()
const=0;
1164 virtual sigc::signal<void,
1167 threads_listed_signal ()
const =0;
1169 virtual sigc::signal<void,
1173 thread_selected_signal ()
const=0;
1175 virtual sigc::signal<void,
1176 const vector<IDebugger::Frame>&,
1177 const UString&>& frames_listed_signal ()
const=0;
1179 virtual sigc::signal<void,
1181 const map<int, list<IDebugger::VariableSafePtr> >&,
1183 frames_arguments_listed_signal ()
const=0;
1188 virtual sigc::signal<void,
1191 current_frame_signal ()
const = 0;
1194 virtual sigc::signal<void, const VariableList&, const UString& >&
1195 local_variables_listed_signal ()
const = 0;
1197 virtual sigc::signal<void, const VariableList&, const UString& >&
1198 global_variables_listed_signal ()
const = 0;
1201 virtual sigc::signal<void,
1203 const VariableSafePtr ,
1205 variable_value_signal ()
const = 0;
1208 virtual sigc::signal<void,
1209 const VariableSafePtr ,
1211 variable_value_set_signal ()
const = 0;
1213 virtual sigc::signal<void,
1215 const VariableSafePtr ,
1217 pointed_variable_value_signal ()
const = 0;
1220 virtual sigc::signal<void,
1224 variable_type_signal ()
const = 0;
1225 virtual sigc::signal<void,
1226 const VariableSafePtr ,
1228 variable_type_set_signal ()
const=0;
1231 virtual sigc::signal<void,
1232 const VariableSafePtr,
1234 variable_dereferenced_signal ()
const=0;
1236 sigc::signal<void, const VariableSafePtr, const UString&>&
1237 variable_visualized_signal ()
const;
1239 virtual sigc::signal<void, const vector<UString>&,
const UString&>&
1240 files_listed_signal ()
const = 0;
1242 virtual sigc::signal<void,
1245 got_target_info_signal ()
const = 0;
1247 virtual sigc::signal<void>& running_signal ()
const=0;
1249 virtual sigc::signal<void,
1252 signal_received_signal ()
const = 0;
1254 virtual sigc::signal<void,
const UString&>&
1255 error_signal ()
const = 0;
1257 virtual sigc::signal<void, IDebugger::State>&
1258 state_changed_signal ()
const = 0;
1260 virtual sigc::signal<void,
1261 const std::map<register_id_t, UString>&,
1263 register_names_listed_signal ()
const = 0;
1265 virtual sigc::signal<void,
1266 const std::map<register_id_t, UString>&,
1268 register_values_listed_signal ()
const = 0;
1270 virtual sigc::signal<void,
1274 register_value_changed_signal ()
const = 0;
1276 virtual sigc::signal<void,
1277 const std::list<register_id_t>&,
1279 changed_registers_listed_signal ()
const = 0;
1281 virtual sigc::signal <void,
1283 const std::vector<uint8_t>&,
1285 read_memory_signal ()
const = 0;
1286 virtual sigc::signal <void,
1288 const std::vector<uint8_t>&,
1290 set_memory_signal ()
const = 0;
1295 virtual sigc::signal<void,
1297 const std::list<Asm>&,
1299 instructions_disassembled_signal ()
const = 0;
1301 virtual sigc::signal<void, const VariableSafePtr, const UString&>&
1302 variable_created_signal ()
const = 0;
1310 virtual sigc::signal<void, const VariableSafePtr, const UString&>&
1311 variable_deleted_signal ()
const = 0;
1313 virtual sigc::signal<void, const VariableSafePtr, const UString&>&
1314 variable_unfolded_signal ()
const = 0;
1316 virtual sigc::signal<void, const VariableSafePtr, const UString&>&
1317 variable_expression_evaluated_signal ()
const = 0;
1325 virtual sigc::signal<void, const VariableList&, const UString&>&
1326 changed_variables_signal ()
const = 0;
1328 virtual sigc::signal<void, VariableSafePtr, const UString&>&
1329 assigned_variable_signal ()
const = 0;
1334 virtual map<UString, UString>& properties () = 0;
1336 virtual void set_event_loop_context
1337 (
const Glib::RefPtr<Glib::MainContext> &) = 0;
1339 virtual void run_loop_iterations (
int a_nb_iters) = 0;
1341 virtual bool busy ()
const = 0;
1343 virtual void set_non_persistent_debugger_path
1344 (
const UString &a_full_path) = 0;
1346 virtual const UString& get_debugger_full_path ()
const = 0;
1348 virtual void set_solib_prefix_path (
const UString &a_name) = 0;
1350 virtual bool load_program (
const UString &a_prog) = 0;
1352 virtual bool load_program (
const UString &a_prog,
1353 const vector<UString> &a_args) = 0;
1355 virtual bool load_program (
const UString &a_prog,
1356 const vector<UString> &a_args,
1358 bool a_force =
false) = 0;
1360 virtual bool load_program
1362 const vector<UString> &a_argv,
1364 const vector<UString> &a_source_search_dirs,
1365 const UString &a_slave_tty_path,
1367 bool a_uses_launch_tty =
false,
1368 bool a_force =
false) = 0;
1370 virtual void load_core_file (
const UString &a_prog_file,
1371 const UString &a_core_file) = 0;
1373 virtual bool attach_to_target (
unsigned int a_pid,
1374 const UString &a_tty_path=
"") = 0;
1376 virtual bool attach_to_remote_target (
const UString &a_host,
1377 unsigned a_port) = 0;
1379 virtual bool attach_to_remote_target (
const UString &a_serial_line) = 0;
1381 virtual void detach_from_target (
const UString &a_cookie=
"") = 0;
1383 virtual void disconnect_from_remote_target (
const UString &a_cookie =
"") = 0;
1385 virtual bool is_attached_to_target ()
const = 0;
1387 virtual void set_tty_path (
const UString &a_tty_path) = 0;
1389 virtual void add_env_variables (
const map<UString, UString> &a_vars) = 0;
1391 virtual map<UString, UString>& get_env_variables () = 0;
1393 virtual const UString& get_target_path () = 0;
1395 virtual void get_target_info (
const UString &a_cookie=
"") = 0;
1397 virtual ILangTrait& get_language_trait () = 0;
1399 virtual bool is_variable_editable (
const VariableSafePtr a_var)
const = 0;
1401 virtual bool is_running ()
const = 0;
1403 virtual void do_continue (
const UString &a_cookie=
"") = 0;
1405 virtual void run (
const UString &a_cookie=
"") = 0;
1407 virtual void re_run (
const DefaultSlot &) = 0;
1411 virtual int get_current_frame_level ()
const = 0;
1413 virtual bool stop_target () = 0;
1415 virtual void exit_engine () = 0;
1417 virtual void step_over (
const UString &a_cookie=
"") = 0;
1419 virtual void step_in (
const UString &a_cookie=
"") = 0;
1421 virtual void step_out (
const UString &a_cookie=
"") = 0;
1423 virtual void step_over_asm (
const UString &a_cookie=
"") = 0;
1425 virtual void step_in_asm (
const UString &a_cookie=
"") = 0;
1427 virtual void continue_to_position (
const UString &a_path,
1429 const UString &a_cookie=
"") = 0;
1431 virtual void jump_to_position (
const Loc &a_loc,
1432 const DefaultSlot &a_slot) = 0;
1434 virtual void set_breakpoint (
const common::Loc &a_loc,
1436 gint a_ignore_count,
1437 const BreakpointsSlot &a_slot,
1438 const UString &a_cookie =
"") = 0;
1440 virtual void set_breakpoint (
const UString &a_path,
1442 const UString &a_condition=
"",
1443 gint a_ignore_count = 0,
1444 const UString &a_cookie =
"") = 0;
1446 virtual void set_breakpoint (
const UString &a_func_name,
1447 const UString &a_condition =
"",
1448 gint a_ignore_count = 0,
1449 const UString &a_cookie =
"") = 0;
1451 virtual void set_breakpoint (
const UString &a_func_name,
1452 const BreakpointsSlot &a_slot,
1453 const UString &a_condition =
"",
1454 gint a_ignore_count = 0,
1455 const UString &a_cookie =
"") = 0;
1457 virtual void set_breakpoint (
const Address &a_address,
1458 const UString &a_condition =
"",
1459 gint a_ignore_count = 0,
1460 const UString &a_cookie =
"") = 0;
1462 virtual void enable_breakpoint (
const string& a_break_num,
1463 const BreakpointsSlot &a_slot,
1464 const UString &a_cookie=
"") = 0;
1466 virtual void enable_breakpoint (
const string& a_break_num,
1467 const UString &a_cookie=
"") = 0;
1469 virtual void disable_breakpoint (
const string& a_break_num,
1470 const UString &a_cookie=
"") = 0;
1472 virtual void set_breakpoint_ignore_count
1473 (
const string& a_break_num,
1474 gint a_ignore_count,
1475 const UString &a_cookie =
"") = 0;
1477 virtual void set_breakpoint_condition (
const string& a_break_num,
1479 const UString &a_cookie =
"") = 0;
1481 virtual void enable_countpoint (
const string& a_break_num,
1483 const UString &a_cookie =
"") = 0;
1485 virtual bool is_countpoint (
const string &a_break_num)
const = 0;
1487 virtual bool is_countpoint (
const Breakpoint &a_breakpoint)
const = 0;
1489 virtual void delete_breakpoint (
const UString &a_path,
1491 const UString &a_cookie=
"") = 0;
1493 virtual void set_watchpoint (
const UString &a_expression,
1494 bool a_write =
true,
1495 bool a_read =
false,
1496 const UString &a_cookie =
"") = 0;
1498 virtual void set_catch (
const UString &a_event,
1499 const UString &a_cookie=
"") = 0;
1501 virtual void list_breakpoints (
const UString &a_cookie=
"") = 0;
1503 virtual const map<string, Breakpoint>& get_cached_breakpoints () = 0;
1505 virtual bool get_breakpoint_from_cache (
const string &a_num,
1509 virtual void choose_function_overload (
int a_overload_number,
1510 const UString &a_cookie=
"") = 0;
1512 virtual void choose_function_overloads (
const vector<int> &a_numbers,
1513 const UString &a_cookie=
"") = 0;
1515 virtual void delete_breakpoint (
const string &a_break_num,
1516 const UString &a_cookie=
"") = 0;
1518 virtual void list_threads (
const UString &a_cookie=
"") = 0;
1520 virtual void select_thread (
unsigned int a_thread_id,
1521 const UString &a_cookie=
"") = 0;
1523 virtual unsigned int get_current_thread ()
const = 0;
1525 virtual void select_frame (
int a_frame_id,
1526 const UString &a_cookie=
"") = 0;
1528 virtual void list_frames (
int a_low_frame=-1,
1529 int a_high_frame=-1,
1530 const UString &a_cookie=
"") = 0;
1532 virtual void list_frames (
int a_low_frame,
1534 const FrameVectorSlot &a_slot,
1537 virtual void list_frames_arguments (
int a_low_frame=-1,
1538 int a_high_frame=-1,
1539 const UString &a_cookie=
"") = 0;
1541 virtual void list_frames_arguments (
int a_low_frame,
1543 const FrameArgsSlot &a_slot,
1546 virtual void list_local_variables (
const ConstVariableListSlot &a_slot,
1547 const UString &a_cookie=
"") = 0;
1549 virtual void list_local_variables (
const UString &a_cookie=
"") = 0;
1551 virtual void list_global_variables (
const UString &a_cookie=
"") = 0;
1553 virtual void evaluate_expression (
const UString &a_expr,
1554 const UString &a_cookie=
"") = 0;
1556 virtual void call_function (
const UString &a_call_expression,
1557 const UString &a_cookie=
"") = 0;
1559 virtual void print_variable_value (
const UString &a_var_name,
1560 const UString &a_cookie=
"") = 0;
1562 virtual void get_variable_value (
const VariableSafePtr &a_var,
1563 const UString &a_cookie=
"") = 0;
1565 virtual void print_pointed_variable_value (
const UString &a_var_name,
1566 const UString &a_cookie=
"")=0;
1568 virtual void print_variable_type (
const UString &a_var_name,
1569 const UString &a_cookie=
"") = 0;
1571 virtual void get_variable_type (
const VariableSafePtr &a_var,
1572 const UString &a_cookie=
"") = 0;
1574 virtual bool dereference_variable (
const VariableSafePtr &a_var,
1575 const UString &a_cookie=
"") = 0;
1577 virtual void revisualize_variable (
const VariableSafePtr a_var,
1578 const ConstVariableSlot &a_slot) = 0;
1580 virtual void list_files (
const UString &a_cookie=
"") = 0;
1582 virtual void list_register_names (
const UString &a_cookie=
"") = 0;
1583 virtual void list_changed_registers (
const UString &a_cookie=
"") = 0;
1584 virtual void list_register_values (
const UString &a_cookie=
"") = 0;
1585 virtual void list_register_values (std::list<register_id_t> a_registers,
1586 const UString &a_cookie=
"") = 0;
1587 virtual void set_register_value (
const UString& a_reg_name,
1589 const UString& a_cookie=
"") = 0;
1591 virtual void read_memory (
size_t a_start_addr,
size_t a_num_bytes,
1592 const UString& a_cookie=
"") = 0;
1593 virtual void set_memory (
size_t a_addr,
1594 const std::vector<uint8_t>& a_bytes,
1595 const UString& a_cookie=
"") = 0;
1597 typedef sigc::slot<void,
1601 virtual void disassemble (
size_t a_start_addr,
1602 bool a_start_addr_relative_to_pc,
1604 bool a_end_addr_relative_to_pc,
1605 bool a_pure_asm =
true,
1606 const UString &a_cookie =
"") = 0;
1608 virtual void disassemble (
size_t a_start_addr,
1609 bool a_start_addr_relative_to_pc,
1611 bool a_end_addr_relative_to_pc,
1613 bool a_pure_asm =
true,
1614 const UString &a_cookie =
"") = 0;
1616 virtual void disassemble_lines (
const UString &a_file_name,
1618 int a_nb_disassembled_lines,
1619 bool a_pure_asm =
true,
1620 const UString &a_cookie =
"") = 0;
1622 virtual void disassemble_lines (
const UString &a_file_name,
1624 int a_nb_disassembled_lines,
1626 bool a_pure_asm =
true,
1627 const UString &a_cookie =
"") = 0;
1629 virtual void create_variable (
const UString &a_name,
1630 const UString &a_cookie =
"") = 0;
1632 virtual void create_variable (
const UString &a_name,
1634 const UString &a_cookie =
"") = 0;
1652 const UString &a_cookie =
"") = 0;
1674 const UString &a_cookie =
"") = 0;
1694 virtual void delete_variable (
const UString &a_internal_name,
1696 const UString &a_cookie =
"") = 0;
1699 const UString &a_cookie =
"") = 0;
1700 virtual void unfold_variable
1703 const UString &a_cookie =
"") = 0;
1707 const UString &a_cookie =
"") = 0;
1709 virtual void assign_variable
1713 const UString &a_cookie=
"") = 0;
1716 const UString &a_cookie =
"") = 0;
1717 virtual void evaluate_variable_expr
1720 const UString &a_cookie =
"")= 0;
1731 const UString &a_cookie =
"") = 0;
1744 virtual void list_changed_variables
1747 const UString &a_cookie=
"") = 0;
1750 const UString &a_cookie =
"") = 0;
1754 const UString &a_cookie =
"") = 0;
1758 const UString &a_cookie =
"") = 0;
1762 const UString &a_cookie =
"") = 0;
1764 virtual void enable_pretty_printing (
bool a_flag =
true) = 0;
1768 NEMIVER_END_NAMESPACE (
nemiver)
1770 #endif //__NMV_I_DEBUGGER_H__
const string & expression() const
Definition: nmv-i-debugger.h:209
@ RUNNING
Definition: nmv-i-debugger.h:1037
const UString & visualizer() const
Definition: nmv-i-debugger.h:747
void format(Format a_format)
Definition: nmv-i-debugger.h:1015
void needs_revisualizing(bool a)
Definition: nmv-i-debugger.h:1018
@ READ_WATCHPOINT_TRIGGER
Definition: nmv-i-debugger.h:1069
const UString & name_caption() const
Definition: nmv-i-debugger.h:737
sigc::slot< void, const DisassembleInfo &, const std::list< Asm > & > DisassSlot
Definition: nmv-i-debugger.h:1599
bool has_condition() const
Definition: nmv-i-debugger.h:224
string id() const
Definition: nmv-i-debugger.h:148
void nb_times_hit(int a_nb)
Definition: nmv-i-debugger.h:227
void id(string &s) const
Definition: nmv-i-debugger.h:179
Definition: nmv-object.h:43
Definition: nmv-asm-instr.h:201
const UString & path_expression() const
Definition: nmv-i-debugger.h:1002
void debugger(IDebugger *a_dbg)
Definition: nmv-i-debugger.h:728
int nb_times_hit() const
Definition: nmv-i-debugger.h:226
void enabled(bool a_in)
Definition: nmv-i-debugger.h:195
const map< string, string > & args() const
Definition: nmv-i-debugger.h:420
void type(const UString &a_type)
Definition: nmv-i-debugger.h:744
State
Definition: nmv-i-debugger.h:1028
Definition: nmv-address.h:31
static UString state_to_string(State a_state)
Definition: nmv-i-debugger.h:1042
void index(int a_index)
Definition: nmv-i-debugger.h:354
sigc::slot< void, Loc & > LocSlot
Definition: nmv-i-debugger.h:1095
Definition: nmv-safe-ptr-utils.h:45
bool is_pending() const
Definition: nmv-i-debugger.h:246
int line_number() const
Definition: nmv-i-debugger.h:362
@ INFERIOR_LOADED
Definition: nmv-i-debugger.h:1032
void name(const UString &a_name)
Definition: nmv-i-debugger.h:731
VariableSafePtr get_dereferenced()
Definition: nmv-i-debugger.h:885
map< string, string > & args()
Definition: nmv-i-debugger.h:421
void clear()
clears the current instance
Definition: nmv-i-debugger.h:441
void line_number(int a_in)
Definition: nmv-i-debugger.h:363
const string & condition() const
Definition: nmv-i-debugger.h:221
#define THROW(a_reason)
Definition: nmv-exception.h:99
sigc::slot< void, const VariableList & > ConstVariableListSlot
Definition: nmv-i-debugger.h:462
#define NEMIVER_API
Definition: nmv-api-macros.h:53
@ STANDARD_BREAKPOINT_TYPE
Definition: nmv-i-debugger.h:95
int parent_breakpoint_number() const
Definition: nmv-i-debugger.h:268
void to_string(UString &a_str, bool a_show_var_name=false, const UString &a_indent_str="") const
Definition: nmv-i-debugger.h:809
const UString & value() const
Definition: nmv-i-debugger.h:740
const VariableList & members() const
Definition: nmv-i-debugger.h:609
bool needs_unfolding() const
Definition: nmv-i-debugger.h:972
Definition: nmv-asm-instr.h:127
void initial_ignore_count(int a)
Definition: nmv-i-debugger.h:232
void display_hint(const UString &a)
Definition: nmv-i-debugger.h:751
void visualizer(const UString &a)
Definition: nmv-i-debugger.h:748
@ BINARY_FORMAT
Definition: nmv-i-debugger.h:469
@ ACCESS_WATCHPOINT_TRIGGER
Definition: nmv-i-debugger.h:1070
The base class for loadable modules.
Definition: nmv-dynamic-module.h:76
void append_sub_breakpoint(Breakpoint &b)
Definition: nmv-i-debugger.h:257
@ BREAKPOINT_HIT
Definition: nmv-i-debugger.h:1067
void file_name(const UString &a_in)
Definition: nmv-i-debugger.h:427
@ WATCHPOINT_TRIGGER
Definition: nmv-i-debugger.h:1068
int sibling_index() const
Definition: nmv-i-debugger.h:639
const Address & address() const
Definition: nmv-i-debugger.h:197
bool copy(const Variable &a_other)
Definition: nmv-i-debugger.h:920
const UString & id() const
Definition: nmv-i-debugger.h:721
sigc::slot< void > DefaultSlot
Definition: nmv-i-debugger.h:455
sigc::slot< void, const map< int, IDebugger::VariableList > & > FrameArgsSlot
Definition: nmv-i-debugger.h:459
const UString & file_name() const
Definition: nmv-i-debugger.h:426
Definition: nmv-ustring.h:45
Address & address()
Definition: nmv-i-debugger.h:198
void path_expression(const UString &a_expr)
Definition: nmv-i-debugger.h:1006
const VariableSafePtr root() const
Definition: nmv-i-debugger.h:801
void type(const string &a_type)
Definition: nmv-i-debugger.h:745
void line(int a_in)
Definition: nmv-i-debugger.h:433
void set(const Variable &a_other)
Definition: nmv-i-debugger.h:937
bool is_dereferenced()
Definition: nmv-i-debugger.h:890
bool expects_children() const
Definition: nmv-i-debugger.h:964
@ DECIMAL_FORMAT
Definition: nmv-i-debugger.h:470
Type
Definition: nmv-i-debugger.h:93
const VariableSafePtr parent() const
A getter of the parent Variable of the current instance.
Definition: nmv-i-debugger.h:783
void condition(const string &a_cond)
Definition: nmv-i-debugger.h:222
Format
Definition: nmv-i-debugger.h:467
Frame()
Definition: nmv-i-debugger.h:386
const UString & name() const
Definition: nmv-i-debugger.h:730
sigc::slot< void, const std::map< string, IDebugger::Breakpoint > & > BreakpointsSlot
Definition: nmv-i-debugger.h:1093
Definition: nmv-dynamic-module.h:220
void function_name(const UString &a_in)
Definition: nmv-i-debugger.h:357
@ EXITED_SIGNALLED
Definition: nmv-i-debugger.h:1075
const UString & display_hint() const
Definition: nmv-i-debugger.h:750
bool needs_revisualizing() const
Definition: nmv-i-debugger.h:1017
int index() const
Definition: nmv-i-debugger.h:353
@ END_STEPPING_RANGE
Definition: nmv-i-debugger.h:1074
Type type() const
Definition: nmv-i-debugger.h:272
virtual bool is_attached_to_target() const =0
void library(const string &a_library)
Definition: nmv-i-debugger.h:436
void parent(Variable *a_parent)
Definition: nmv-i-debugger.h:795
IDebugger * debugger() const
Definition: nmv-i-debugger.h:727
int number() const
Definition: nmv-i-debugger.h:189
IDebugger(DynamicModule *a_dynmod)
Definition: nmv-i-debugger.h:81
void is_pending(bool a)
Definition: nmv-i-debugger.h:247
void build_qname(UString &a_qname) const
Definition: nmv-i-debugger.h:843
Variable(IDebugger *a_dbg=0)
Definition: nmv-i-debugger.h:583
@ HEXADECIMAL_FORMAT
Definition: nmv-i-debugger.h:471
const std::string & to_string() const
const Address & address() const
Definition: nmv-i-debugger.h:409
Variable(const UString &a_name, const UString &a_value, const UString &a_type, bool a_in_scope=true, IDebugger *a_dbg=0)
Definition: nmv-i-debugger.h:548
void file_full_name(const UString &a_in)
Definition: nmv-i-debugger.h:430
void clear()
clear this instance of breakpoint
Definition: nmv-i-debugger.h:278
void file_full_name(const UString &a_in)
Definition: nmv-i-debugger.h:216
unsigned int register_id_t
Definition: nmv-i-debugger.h:87
void function_name(const string &a_in)
Definition: nmv-i-debugger.h:418
static bool is_exited(enum StopReason a_reason)
Return true if a StopReason represents a reason for exiting.
Definition: nmv-i-debugger.h:1082
void reset()
Definition: nmv-safe-ptr.h:178
const UString & internal_name() const
Definition: nmv-i-debugger.h:711
void internal_name(const UString &a_in)
Definition: nmv-i-debugger.h:716
void value(const UString &a_value)
Definition: nmv-i-debugger.h:741
@ WATCHPOINT_SCOPE
Definition: nmv-i-debugger.h:1073
void address(const string &a_in)
Definition: nmv-i-debugger.h:199
void in_scope(bool a)
Definition: nmv-i-debugger.h:1012
Breakpoint()
Definition: nmv-i-debugger.h:136
void num_expected_children(unsigned int a_in)
Definition: nmv-i-debugger.h:959
vector< OverloadsChoiceEntry > OverloadsChoiceEntries
Definition: nmv-i-debugger.h:365
@ LOCATION_REACHED
Definition: nmv-i-debugger.h:1072
void ignore_count(int a)
Definition: nmv-i-debugger.h:238
void type(Type a_type)
Definition: nmv-i-debugger.h:273
Definition: nmv-i-lang-trait.h:44
int sub_breakpoint_number() const
Definition: nmv-i-debugger.h:192
void kind(Kind a_kind)
Definition: nmv-i-debugger.h:351
~Variable()
Definition: nmv-i-debugger.h:595
bool is_morally_root() const
Definition: nmv-i-debugger.h:773
bool is_write_watchpoint() const
Definition: nmv-i-debugger.h:243
bool enabled() const
Definition: nmv-i-debugger.h:194
list< VariableSafePtr > VariableList
Definition: nmv-i-debugger.h:369
const string & library() const
Definition: nmv-i-debugger.h:435
@ WATCHPOINT_TYPE
Definition: nmv-i-debugger.h:96
virtual void delete_variable(const VariableSafePtr a_var, const UString &a_cookie="")=0
Definition: nmv-asm-instr.h:42
bool is_copyable(const Variable &a_other) const
Definition: nmv-i-debugger.h:896
const UString & file_name() const
Definition: nmv-i-debugger.h:359
Definition: nmv-i-debugger.h:465
int initial_ignore_count() const
Definition: nmv-i-debugger.h:231
void line(int a_in)
Definition: nmv-i-debugger.h:219
bool has_multiple_locations() const
Definition: nmv-i-debugger.h:255
std::string int_to_string(size_t an_int)
bool is_sub_breakpoint() const
Definition: nmv-i-debugger.h:270
StopReason
Definition: nmv-i-debugger.h:1065
void is_read_watchpoint(bool f)
Definition: nmv-i-debugger.h:241
const vector< Breakpoint > & sub_breakpoints() const
Definition: nmv-i-debugger.h:263
void address(const Address &a_in)
Definition: nmv-i-debugger.h:411
Format format() const
Definition: nmv-i-debugger.h:1014
sigc::slot< void, const UString & > ConstUStringSlot
Definition: nmv-i-debugger.h:463
Variable(const UString &a_name, IDebugger *a_dbg=0)
Definition: nmv-i-debugger.h:568
const UString & file_full_name() const
Definition: nmv-i-debugger.h:215
const string & function_name() const
Definition: nmv-i-debugger.h:417
int ignore_count() const
Definition: nmv-i-debugger.h:237
bool is_dynamic() const
Definition: nmv-i-debugger.h:1020
void set_dereferenced(VariableSafePtr a_derefed)
Definition: nmv-i-debugger.h:880
a debugger engine.
Definition: nmv-i-debugger.h:74
The base type presenting a location.
Definition: nmv-loc.h:42
void build_qualified_internal_name(UString &a_qname) const
Definition: nmv-i-debugger.h:865
@ ALL
Definition: nmv-i-debugger.h:311
void is_write_watchpoint(bool f)
Definition: nmv-i-debugger.h:244
const UString & function_name() const
Definition: nmv-i-debugger.h:356
void expression(const string &a_expr)
Definition: nmv-i-debugger.h:210
@ EXITED
Definition: nmv-i-debugger.h:1076
Definition: nmv-address.h:34
a function frame as seen by the debugger.
Definition: nmv-i-debugger.h:372
bool is_read_watchpoint() const
Definition: nmv-i-debugger.h:240
OverloadsChoiceEntry(Kind a_kind, int a_index, UString &a_function_name, UString a_file_name, int a_line_number)
Definition: nmv-i-debugger.h:335
Definition: nmv-safe-ptr-utils.h:55
void name_caption(const UString &a_n)
Definition: nmv-i-debugger.h:738
SafePtr< IDebugger, ObjectRef, ObjectUnref > IDebuggerSafePtr
Definition: nmv-i-debugger.h:66
a breakpoint descriptor
Definition: nmv-i-debugger.h:90
bool has_parent() const
Definition: nmv-i-debugger.h:755
string parent_id() const
Definition: nmv-i-debugger.h:163
Variable(const UString &a_internal_name, const UString &a_name, const UString &a_value, const UString &a_type, bool a_in_scope=true, IDebugger *a_dbg=0)
Definition: nmv-i-debugger.h:527
int line() const
Definition: nmv-i-debugger.h:432
const UString & type() const
Definition: nmv-i-debugger.h:743
bool has_more_children() const
Definition: nmv-i-debugger.h:1023
@ EXITED_NORMALLY
Definition: nmv-i-debugger.h:1077
bool in_scope() const
Definition: nmv-i-debugger.h:1011
VariableList & members()
Definition: nmv-i-debugger.h:611
sigc::slot< void, const vector< IDebugger::Frame > & > FrameVectorSlot
Definition: nmv-i-debugger.h:457
int line() const
Definition: nmv-i-debugger.h:218
void file_name(const UString &a_in)
Definition: nmv-i-debugger.h:213
bool has_empty_address() const
Definition: nmv-i-debugger.h:412
const UString & file_full_name() const
Definition: nmv-i-debugger.h:429
sigc::slot< void, const VariableSafePtr > ConstVariableSlot
Definition: nmv-i-debugger.h:461
SafePtr< Variable, ObjectRef, ObjectUnref > VariableSafePtr
Definition: nmv-i-debugger.h:367
OverloadsChoiceEntry()
Definition: nmv-i-debugger.h:345
an entry of a choice list to choose between a list of overloaded functions. This is used for instance...
Definition: nmv-i-debugger.h:307
Kind
Definition: nmv-i-debugger.h:309
@ NATURAL_FORMAT
Definition: nmv-i-debugger.h:473
const UString & file_name() const
Definition: nmv-i-debugger.h:212
Definition: nmv-safe-ptr.h:71
void file_name(const UString &a_in)
Definition: nmv-i-debugger.h:360
bool equals(const Variable &a_other) const
Definition: nmv-i-debugger.h:663
SafePtr< DynamicModule, ObjectRef, ObjectUnref > DynamicModuleSafePtr
Definition: nmv-dynamic-module.h:61
virtual ~IDebugger()
Definition: nmv-i-debugger.h:1097
bool equals_by_value(const Variable &a_other) const
Definition: nmv-i-debugger.h:677
void is_dynamic(bool a)
Definition: nmv-i-debugger.h:1021
bool get_member_at(int a_index, VariableSafePtr &a_var) const
Definition: nmv-i-debugger.h:622
@ OCTAL_FORMAT
Definition: nmv-i-debugger.h:472
int level() const
Definition: nmv-i-debugger.h:423
@ READY
Definition: nmv-i-debugger.h:1035
@ FUNCTION_FINISHED
Definition: nmv-i-debugger.h:1071
void append(const VariableSafePtr &a_var)
Definition: nmv-i-debugger.h:698
unsigned int num_expected_children() const
Definition: nmv-i-debugger.h:954
void number(int a_in)
Definition: nmv-i-debugger.h:191
Address & address()
Definition: nmv-i-debugger.h:410
void has_more_children(bool a)
Definition: nmv-i-debugger.h:1024
Kind kind() const
Definition: nmv-i-debugger.h:350
Definition: nmv-asm-instr.h:81
void level(int a_level)
Definition: nmv-i-debugger.h:424