Nemiver  0.3
nmv-dbg-common.h
Go to the documentation of this file.
1 // -*- Mode: C++ -*-
2 
3 //Author: Dodji Seketeli
4 /*
5  *This file is part of the Nemiver project
6  *
7  *Nemiver is free software; you can redistribute
8  *it and/or modify it under the terms of
9  *the GNU General Public License as published by the
10  *Free Software Foundation; either version 2,
11  *or (at your option) any later version.
12  *
13  *Nemiver is distributed in the hope that it will
14  *be useful, but WITHOUT ANY WARRANTY;
15  *without even the implied warranty of
16  *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17  *See the GNU General Public License for more details.
18  *
19  *You should have received a copy of the
20  *GNU General Public License along with Nemiver;
21  *see the file COPYING.
22  *If not, write to the Free Software Foundation,
23  *Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24  *
25  *See COPYRIGHT file copyright information.
26  */
27 #ifndef __NMV_DBG_COMMON_H_H__
28 #define __NMV_DBG_COMMON_H_H__
29 #include "nmv-i-debugger.h"
30 #include <memory>
31 
32 NEMIVER_BEGIN_NAMESPACE (nemiver)
33 
34 class VarChange {
39  struct Priv;
40  std::shared_ptr<Priv> m_priv;
41 
42 public:
43  VarChange ();
44  VarChange (IDebugger::VariableSafePtr a_var,
45  int new_num_children,
46  list<IDebugger::VariableSafePtr> &a_changed_children);
47 
51  const IDebugger::VariableSafePtr variable () const;
52  void variable (const IDebugger::VariableSafePtr);
53 
59  int new_num_children () const;
60  void new_num_children (int);
61 
64  const list<IDebugger::VariableSafePtr>& new_children () const;
65  list<IDebugger::VariableSafePtr>& new_children ();
66  void new_children (const list<IDebugger::VariableSafePtr>&);
67 
69  void apply_to_variable (IDebugger::VariableSafePtr a_var,
70  std::list<IDebugger::VariableSafePtr> &a_changed_vars);
71 };
72 typedef std::shared_ptr<VarChange> VarChangePtr;
73 
77  IDebugger::Variable &a_from);
78 
79 void
81  const VarChange &a_change);
82 
84 class Command {
85  UString m_cookie;
86  UString m_name;
87  UString m_value;
88  UString m_tag0;
89  UString m_tag1;
90  int m_tag2;
91  UString m_tag3;
92  UString m_tag4;
94  sigc::slot_base m_slot;
95  bool m_should_emit_signal;
96 
97 public:
98 
99  Command () :
100  m_tag2 (0),
101  m_slot (0),
102  m_should_emit_signal (true)
103  {
104  clear ();
105  }
106 
108  Command (const UString &a_value) :
109  m_value (a_value),
110  m_tag2 (0),
111  m_slot (0),
112  m_should_emit_signal (true)
113  {
114  }
115 
116  Command (const UString &a_name, const UString &a_value) :
117  m_name (a_name),
118  m_value (a_value),
119  m_tag2 (0),
120  m_slot (0),
121  m_should_emit_signal (true)
122  {
123  }
124 
125  Command (const UString &a_name,
126  const UString &a_value,
127  const UString &a_cookie) :
128  m_cookie (a_cookie),
129  m_name (a_name),
130  m_value (a_value),
131  m_tag2 (0),
132  m_slot (0),
133  m_should_emit_signal (true)
134  {
135  }
136 
138 
140 
141  const UString& name () const {return m_name;}
142  void name (const UString &a_in) {m_name = a_in;}
143 
144  const UString& value () const {return m_value;}
145  void value (const UString &a_in) {m_value = a_in;}
146 
147  const UString& cookie () const {return m_cookie;}
148  void cookie (const UString &a_in) {m_cookie = a_in;}
149 
150  const UString& tag0 () const {return m_tag0;}
151  void tag0 (const UString &a_in) {m_tag0 = a_in;}
152 
153  const UString& tag1 () const {return m_tag1;}
154  void tag1 (const UString &a_in) {m_tag1 = a_in;}
155 
156  int tag2 () const {return m_tag2;}
157  void tag2 (int a_in) {m_tag2 = a_in;}
158 
159  const UString& tag3 () const {return m_tag3;}
160  void tag3 (const UString &a_in) {m_tag3 = a_in;}
161 
162  const UString& tag4 () const {return m_tag4;}
163  void tag4 (const UString &a_in) {m_tag4 = a_in;}
164 
165  void variable (const IDebugger::VariableSafePtr a_in) {m_var = a_in;}
166  IDebugger::VariableSafePtr variable () const {return m_var;}
167 
168  bool has_slot () const
169  {
170  return static_cast<bool> (m_slot);
171  }
172 
173  template<class T>
174  void set_slot (T &a_slot)
175  {
176  m_slot = a_slot;
177  }
178 
179  template<class T>
180  const T& get_slot () const
181  {
182  return reinterpret_cast<const T&> (m_slot);
183  }
184 
185  bool should_emit_signal () const {return m_should_emit_signal;}
186  void should_emit_signal (bool a) {m_should_emit_signal = a;}
187 
189 
190  void clear ()
191  {
192  m_name.clear ();
193  m_value.clear ();
194  m_tag0.clear ();
195  m_tag1.clear ();
196  m_tag2 = 0;
197  m_tag3.clear ();
198  m_tag4.clear ();
199  m_should_emit_signal = true;
200  }
201 };//end class Command
202 
209 class Output {
210 public:
211 
217  class StreamRecord {
218  UString m_debugger_console;
219  UString m_target_output;
220  UString m_debugger_log;
221 
222  public:
223 
224  StreamRecord () {clear ();}
225  StreamRecord (const UString &a_debugger_console,
226  const UString &a_target_output,
227  const UString &a_debugger_log) :
228  m_debugger_console (a_debugger_console),
229  m_target_output (a_target_output),
230  m_debugger_log (a_debugger_log)
231  {}
232 
234 
236  const UString& debugger_console () const {return m_debugger_console;}
237  UString& debugger_console () {return m_debugger_console;}
238  void debugger_console (const UString &a_in)
239  {
240  m_debugger_console = a_in;
241  }
242 
243  const UString& target_output () const {return m_target_output;}
244  void target_output (const UString &a_in) {m_target_output = a_in;}
245 
246  const UString& debugger_log () const {return m_debugger_log;}
247  void debugger_log (const UString &a_in) {m_debugger_log = a_in;}
249 
250  void clear ()
251  {
252  m_debugger_console = "";
253  m_target_output = "";
254  m_debugger_log = "";
255  }
256  };//end class StreamRecord
257 
258 
265  public:
266 
267  private:
268  bool m_has_stream_record;
269  StreamRecord m_stream_record;
270  bool m_is_stopped;
271  bool m_is_running;
272  IDebugger::StopReason m_stop_reason;
273  bool m_has_frame;
274  bool m_thread_selected;
275  IDebugger::Frame m_frame;
276  long m_breakpoint_number;
277  long m_thread_id;
278  UString m_signal_type;
279  UString m_signal_meaning;
280  bool m_has_modified_breakpoint;
281  IDebugger::Breakpoint m_modified_breakpoint;
282 
283  public:
284 
285  OutOfBandRecord () {clear ();}
286 
288  {
289  UString result ("undefined");
290 
291  switch (a_reason) {
292  case IDebugger::UNDEFINED_REASON:
293  return "undefined";
294  break;
295  case IDebugger::BREAKPOINT_HIT:
296  return "breakpoint-hit";
297  break;
298  case IDebugger::WATCHPOINT_TRIGGER:
299  return "watchpoint-trigger";
300  break;
301  case IDebugger::READ_WATCHPOINT_TRIGGER:
302  return "read-watchpoint-trigger";
303  break;
304  case IDebugger::ACCESS_WATCHPOINT_TRIGGER:
305  return "access-watchpoint-trigger";
306  break;
307  case IDebugger::FUNCTION_FINISHED:
308  return "function-finished";
309  break;
310  case IDebugger::LOCATION_REACHED:
311  return "location-reached";
312  break;
313  case IDebugger::WATCHPOINT_SCOPE:
314  return "watchpoint-scope";
315  break;
316  case IDebugger::END_STEPPING_RANGE:
317  return "end-stepping-range";
318  break;
319  case IDebugger::EXITED_SIGNALLED:
320  return "exited-signaled";
321  break;
322  case IDebugger::EXITED:
323  return "exited";
324  break;
325  case IDebugger::EXITED_NORMALLY:
326  return "exited-normally";
327  break;
328  case IDebugger::SIGNAL_RECEIVED:
329  return "signal-received";
330  break;
331  }
332  return result;
333  }
334 
336 
337 
339  bool has_stream_record () const {return m_has_stream_record;}
340  void has_stream_record (bool a_in) {m_has_stream_record = a_in;}
341 
342  const StreamRecord& stream_record () const {return m_stream_record;}
343  StreamRecord& stream_record () {return m_stream_record;}
344  void stream_record (const StreamRecord &a_in) {m_stream_record=a_in;}
345 
346  bool is_stopped () const {return m_is_stopped;}
347  void is_stopped (bool a_in) {m_is_stopped = a_in;}
348 
349  bool is_running () const {return m_is_running;}
350  void is_running (bool a) {m_is_running = a;}
351 
352  IDebugger::StopReason stop_reason () const {return m_stop_reason;}
354  {
355  return stop_reason_to_string (m_stop_reason);
356  }
357  void stop_reason (IDebugger::StopReason a_in) {m_stop_reason = a_in;}
358 
359  bool has_frame () const {return m_has_frame;}
360  void has_frame (bool a_in) {m_has_frame = a_in;}
361 
362  const IDebugger::Frame& frame () const {return m_frame;}
363  IDebugger::Frame& frame () {return m_frame;}
364  void frame (const IDebugger::Frame &a_in) {m_frame = a_in;}
365 
366  long breakpoint_number () const {return m_breakpoint_number;}
367  void breakpoint_number (long a_in) {m_breakpoint_number = a_in;}
368 
369  bool thread_selected () const {return m_thread_selected;}
370  void thread_selected (bool a_in) {m_thread_selected = a_in;}
371 
372  long thread_id () const {return m_thread_id;}
373  void thread_id (long a_in) {m_thread_id = a_in;}
374 
375  const UString& signal_type () const {return m_signal_type;}
376  void signal_type (const UString &a_in) {m_signal_type = a_in;}
377 
378  const UString& signal_meaning () const {return m_signal_meaning;}
379  void signal_meaning (const UString &a_in) {m_signal_meaning = a_in;}
380 
381  bool has_signal () const {return m_signal_type != "";}
382 
389  {return m_has_modified_breakpoint;}
390 
396  {return m_modified_breakpoint;}
397 
401  {
402  m_modified_breakpoint = b;
403  m_has_modified_breakpoint = true;
404  }
405 
407 
408  void clear ()
409  {
410  m_has_stream_record = false;
411  m_stream_record.clear ();
412  m_is_stopped = false;
413  m_is_running = false;
414  m_stop_reason = IDebugger::UNDEFINED_REASON;
415  m_has_frame = false;
416  m_thread_selected = false;
417  m_frame.clear ();
418  m_breakpoint_number = 0;
419  m_thread_id = -1;
420  m_signal_type.clear ();
421  m_has_modified_breakpoint = 0;
422  m_modified_breakpoint.clear();
423  }
424  };//end class OutOfBandRecord
425  typedef list<OutOfBandRecord> OutOfBandRecords;
426 
437  class ResultRecord {
438  public:
439  enum Kind {
440  UNDEFINED=0,
445  EXIT
446  };//end enum Kind
447 
448  private:
449  Kind m_kind;
450  map<string, IDebugger::Breakpoint> m_breakpoints;
451  map<UString, UString> m_attrs;
452 
453  //call stack listed members
454  vector<IDebugger::Frame> m_call_stack;
455  bool m_has_call_stack;
456 
457  //frame parameters listed members
458  map<int, list<IDebugger::VariableSafePtr> > m_frames_parameters;
459  bool m_has_frames_parameters;
460 
461  //local variable listed members
462  list<IDebugger::VariableSafePtr> m_local_variables;
463  bool m_has_local_variables;
464 
465  //variable value evaluated members
466  IDebugger::VariableSafePtr m_variable_value;
467  bool m_has_variable_value;
468 
469  //threads listed members
470  std::list<int> m_thread_list;
471  bool m_has_thread_list;
472 
473  //files listed members
474  std::vector<UString> m_file_list;
475  bool m_has_file_list;
476 
477  //new thread id selected members
478  int m_thread_id;
479  IDebugger::Frame m_frame_in_thread;
480  bool m_thread_id_got_selected;
481  //TODO: finish (re)initialisation of thread id selected members
482 
483  //current frame, in the context of a core file stack trace.
484  IDebugger::Frame m_current_frame_in_core_stack_trace;
485  bool m_has_current_frame_in_core_stack_trace;
486 
487  // register names
488  std::map<IDebugger::register_id_t, UString> m_register_names;
489  bool m_has_register_names;
490 
491  // register values
492  std::map<IDebugger::register_id_t, UString> m_register_values;
493  bool m_has_register_values;
494 
495  // changed registers
496  std::list<IDebugger::register_id_t> m_changed_registers;
497  bool m_has_changed_registers;
498 
499  // memory values
500  std::vector<uint8_t> m_memory_values;
501  size_t m_memory_address;
502  bool m_has_memory_values;
503 
504  // asm instruction list
505  std::list<common::Asm> m_asm_instrs;
506  bool m_has_asm_instrs;
507 
508  // Variable Object
509  IDebugger::VariableSafePtr m_variable;
510  bool m_has_variable;
511 
512  // Variable Object deletion information
513  int m_nb_variable_deleted;
514 
515  // Children variables of a given variable.
516  vector<IDebugger::VariableSafePtr> m_variable_children;
517  bool m_has_variable_children;
518 
519  // A list of the changes that occurred on a given variable.
520  // Whenever a user issues IDebugger::list_changed_variables on
521  // a given variable, the result is this m_var_changes. Each
522  // element of the list represents a change in the value of the
523  // given variable (like a change in one of its scalar members,
524  // a new member, or removal of last N members), or a change in
525  // one of the children of the variables.
526  list<VarChangePtr> m_var_changes;
527  bool m_has_var_changes;
528 
529  // Thew new number of children of a dynamic variable. Set to
530  // -1 by default.
531  int m_new_num_children;
532 
533  // The path expression of a variable object.
534  UString m_path_expression;
535  bool m_has_path_expression;
536 
537  // The variable format of a variable object
538  IDebugger::Variable::Format m_variable_format;
539  bool m_has_variable_format;
540 
541  public:
542  ResultRecord () {clear ();}
543 
545  void clear ()
546  {
547  m_kind = UNDEFINED;
548  m_breakpoints.clear ();
549  m_attrs.clear ();
550  m_call_stack.clear ();
551  m_has_call_stack = false;
552  m_frames_parameters.clear ();
553  m_has_frames_parameters = false;
554  m_local_variables.clear ();
555  m_has_local_variables = false;
556  m_variable_value.reset ();
557  m_has_variable_value = false;
558  m_thread_list.clear ();
559  m_has_thread_list = false;
560  m_thread_id = 0;
561  m_frame_in_thread.clear ();
562  m_thread_id_got_selected = false;
563  m_file_list.clear ();
564  m_has_file_list = false;
565  m_has_current_frame_in_core_stack_trace = false;
566  m_has_changed_registers = false;
567  m_changed_registers.clear ();
568  m_has_register_values = false;
569  m_register_values.clear ();
570  m_has_register_names = false;
571  m_register_names.clear ();
572  m_memory_values.clear ();
573  m_memory_address = 0;
574  m_has_memory_values = false;
575  m_asm_instrs.clear ();
576  m_has_asm_instrs = false;
577  m_has_variable = false;
578  m_nb_variable_deleted = 0;
579  m_has_variable_children = false;
580  m_var_changes.clear ();
581  m_has_var_changes = false;
582  m_new_num_children = -1;
583  m_path_expression.clear ();
584  m_has_path_expression = false;
585  m_variable_format = IDebugger::Variable::UNDEFINED_FORMAT;
586  m_has_variable_format = false;
587  }
588 
590 
592  Kind kind () const {return m_kind;}
593  void kind (Kind a_in) {m_kind = a_in;}
594 
595  const map<string, IDebugger::Breakpoint>& breakpoints () const
596  {
597  return m_breakpoints;
598  }
599  map<string, IDebugger::Breakpoint>& breakpoints () {return m_breakpoints;}
600 
601  map<UString, UString>& attrs () {return m_attrs;}
602  const map<UString, UString>& attrs () const {return m_attrs;}
603 
604  bool has_call_stack () const {return m_has_call_stack;}
605  void has_call_stack (bool a_flag) {m_has_call_stack = a_flag;}
606 
607  const vector<IDebugger::Frame>& call_stack () const {return m_call_stack;}
608  vector<IDebugger::Frame>& call_stack () {return m_call_stack;}
609  void call_stack (const vector<IDebugger::Frame> &a_in)
610  {
611  m_call_stack = a_in;
612  has_call_stack (true);
613  }
614  bool has_register_names () const { return m_has_register_names; }
615  void has_register_names (bool a_flag) { m_has_register_names = a_flag; }
616  const std::map<IDebugger::register_id_t, UString>& register_names () const
617  {
618  return m_register_names;
619  }
620 
621  void register_names
622  (const std::map<IDebugger::register_id_t, UString>& a_names)
623  {
624  m_register_names = a_names;
625  has_register_names (true);
626  }
627 
628  bool has_changed_registers () const { return m_has_changed_registers; }
629  void has_changed_registers (bool a_flag)
630  {
631  m_has_changed_registers = a_flag;
632  }
633  const std::list<IDebugger::register_id_t>& changed_registers () const
634  {
635  return m_changed_registers;
636  }
637  void changed_registers (const std::list<IDebugger::register_id_t>& a_regs)
638  {
639  m_changed_registers = a_regs;
640  has_changed_registers (true);
641  }
642 
643  bool has_register_values () const { return m_has_register_values; }
644  void has_register_values (bool a_flag) { m_has_register_values = a_flag; }
645  const std::map<IDebugger::register_id_t, UString>& register_values () const
646  {
647  return m_register_values;
648  }
649  void register_values
650  (const std::map<IDebugger::register_id_t, UString>& a_regs)
651  {
652  m_register_values = a_regs;
653  has_register_values (true);
654  }
655 
656  bool has_memory_values () const { return m_has_memory_values; }
657  void has_memory_values (bool a_flag) { m_has_memory_values = a_flag; }
658  const std::vector<uint8_t>& memory_values () const
659  {
660  return m_memory_values;
661  }
662  size_t memory_address () const { return m_memory_address; }
663  void memory_values (size_t a_address, const std::vector<uint8_t>& a_values)
664  {
665  m_memory_address = a_address;
666  m_memory_values = a_values;
667  has_memory_values (true);
668  }
669 
670  bool has_asm_instruction_list () const {return m_has_asm_instrs;}
671  void has_asm_instruction_list (bool a) {m_has_asm_instrs = a;}
672 
673  const std::list<common::Asm>& asm_instruction_list () const
674  {
675  return m_asm_instrs;
676  }
677  void asm_instruction_list
678  (const std::list<common::Asm> &a_asms)
679  {
680  m_asm_instrs = a_asms;
681  m_has_asm_instrs = true;
682  }
683 
684  const map<int, list<IDebugger::VariableSafePtr> >&
686  {
687  return m_frames_parameters;
688  }
689  void frames_parameters
690  (const map<int, list<IDebugger::VariableSafePtr> > &a_in)
691  {
692  m_frames_parameters = a_in;
693  has_frames_parameters (true);
694  }
695 
696  bool has_frames_parameters () const {return m_has_frames_parameters;}
697  void has_frames_parameters (bool a_yes) {m_has_frames_parameters = a_yes;}
698 
699  const list<IDebugger::VariableSafePtr>& local_variables () const
700  {
701  return m_local_variables;
702  }
703  void local_variables (const list<IDebugger::VariableSafePtr> &a_in)
704  {
705  m_local_variables = a_in;
706  has_local_variables (true);
707  }
708 
709  bool has_local_variables () const {return m_has_local_variables;}
710  void has_local_variables (bool a_in) {m_has_local_variables = a_in;}
711 
713  {
714  return m_variable_value;
715  }
717  {
718  m_variable_value = a_in;
719  has_variable_value (true);
720  }
721 
722  bool has_variable_value () const {return m_has_variable_value;}
723  void has_variable_value (bool a_in) {m_has_variable_value = a_in;}
724 
725  bool has_thread_list () const {return m_has_thread_list;}
726  void has_thread_list (bool a_in) {m_has_thread_list = a_in;}
727 
728  const std::list<int>& thread_list () const {return m_thread_list;}
729  void thread_list (const std::list<int> &a_in)
730  {
731  m_thread_list = a_in;
732  has_thread_list (true);
733  }
734 
735  bool thread_id_got_selected () const {return m_thread_id_got_selected;}
736  void thread_id_got_selected (bool a_in) {m_thread_id_got_selected = a_in;}
737 
738  int thread_id () const {return m_thread_id;}
740  {
741  return m_frame_in_thread;
742  }
743  void thread_id_selected_info (int a_thread_id,
744  const IDebugger::Frame &a_frame_in_thread)
745  {
746  m_thread_id = a_thread_id;
747  m_frame_in_thread = a_frame_in_thread;
748  thread_id_got_selected (true);
749  }
750 
751  bool has_file_list () const {return m_has_file_list;}
752  void has_file_list (bool a_in) {m_has_file_list = a_in;}
753 
754  const std::vector<UString>& file_list () const {return m_file_list;}
755  void file_list (const std::vector<UString> &a_in)
756  {
757  m_file_list = a_in;
758  has_file_list (true);
759  }
760 
762  {
763  return m_current_frame_in_core_stack_trace;
764  }
766  {
767  m_current_frame_in_core_stack_trace = a_in;
768  has_current_frame_in_core_stack_trace (true);
769  }
770 
772  {
773  return m_has_current_frame_in_core_stack_trace;
774  }
776  {
777  m_has_current_frame_in_core_stack_trace = a_in;
778  }
779 
780  bool has_variable () {return m_has_variable; }
781  void has_variable (bool a_in) {m_has_variable = a_in;}
782 
784  {
785  return m_variable;
786  }
788  {
789  m_variable = a_var;
790  has_variable (true);
791  }
792 
794  {
795  return m_nb_variable_deleted;
796  }
797 
799  {
800  m_nb_variable_deleted = a_nb;
801  }
802 
803  bool has_variable_children () const
804  {
805  return m_has_variable_children;
806  }
807  void has_variable_children (bool a_in)
808  {
809  m_has_variable_children = a_in;
810  }
811 
812  const vector<IDebugger::VariableSafePtr>&
814  {
815  return m_variable_children;
816  }
817  void
818  variable_children (const vector<IDebugger::VariableSafePtr> &a_vars)
819  {
820  m_variable_children = a_vars;
821  has_variable_children (true);
822  }
823 
824  bool has_var_changes () const
825  {
826  return m_has_var_changes;
827  }
828  void has_var_changes (bool a_in)
829  {
830  m_has_var_changes = a_in;
831  }
832 
840  const list<VarChangePtr>& var_changes () const
841  {
842  return m_var_changes;
843  }
844 
852  void var_changes (const list<VarChangePtr> &a_in)
853  {
854  m_var_changes = a_in;
855  has_var_changes (true);
856  }
857 
858  int new_num_children () const {return m_new_num_children;}
859  void new_num_children (int a) {m_new_num_children = a;}
860 
861  const UString& path_expression () const
862  {
863  return m_path_expression;
864  }
865  void path_expression (const UString &a_str)
866  {
867  m_path_expression = a_str;
868  if (!a_str.empty ())
869  has_path_expression (true);
870  }
871 
872  bool has_path_expression () const
873  {
874  return m_has_path_expression;
875  }
876  void has_path_expression (bool a)
877  {
878  m_has_path_expression = a;
879  }
880 
882  {
883  return m_variable_format;
884  }
886  {
887  m_variable_format = a_format;
888  has_variable_format (true);
889  }
890 
891  bool has_variable_format () const
892  {
893  return m_has_variable_format;
894  }
895  void has_variable_format (bool a_flag)
896  {
897  m_has_variable_format = a_flag;
898  }
899 
901 
902  };//end class ResultRecord
903 
904 private:
905  UString m_value;
906  bool m_parsing_succeeded;
907  bool m_has_out_of_band_record;
908  list<OutOfBandRecord> m_out_of_band_records;
909  bool m_has_result_record;
910  ResultRecord m_result_record;
911 
912 public:
913 
914  Output () {clear ();}
915 
916  Output (const UString &a_value) {clear ();if (a_value == "") {}}
917 
919 
921  const UString& raw_value () const {return m_value;}
922  void raw_value (const UString &a_in) {m_value = a_in;}
923 
924  bool parsing_succeeded () const {return m_parsing_succeeded;}
925  void parsing_succeeded (bool a_in) {m_parsing_succeeded = a_in;}
926 
927  bool has_out_of_band_record () const {return m_has_out_of_band_record;}
928  void has_out_of_band_record (bool a_in) {m_has_out_of_band_record = a_in;}
929 
930  const list<OutOfBandRecord>& out_of_band_records () const
931  {
932  return m_out_of_band_records;
933  }
934 
935  list<OutOfBandRecord>& out_of_band_records ()
936  {
937  return m_out_of_band_records;
938  }
939 
940  bool has_result_record () const {return m_has_result_record;}
941  void has_result_record (bool a_in) {m_has_result_record = a_in;}
942 
943  const ResultRecord& result_record () const {return m_result_record;}
944  ResultRecord& result_record () {return m_result_record;}
945  void result_record (const ResultRecord &a_in) {m_result_record = a_in;}
947 
948  void clear ()
949  {
950  m_value = "";
951  m_parsing_succeeded = false;
952  m_has_out_of_band_record = false;
953  m_out_of_band_records.clear ();
954  m_has_result_record = false;
955  m_result_record.clear ();
956  }
957 };//end class Output
958 
962  bool m_has_command;
963  Command m_command;
964  Output m_output;
965 
966 public:
967 
968  CommandAndOutput (const Command &a_command,
969  const Output &a_output) :
970  m_has_command (true),
971  m_command (a_command),
972  m_output (a_output)
973  {
974  }
975 
977  m_has_command (false)
978  {}
979 
981 
983 
984  bool has_command () const {return m_has_command;}
985  void has_command (bool a_in) {m_has_command = a_in;}
986 
987  const Command& command () const {return m_command;}
988  Command& command () {return m_command;}
989  void command (const Command &a_in)
990  {
991  m_command = a_in; has_command (true);
992  }
993 
994  const Output& output () const {return m_output;}
995  Output& output () {return m_output;}
996  void output (const Output &a_in) {m_output = a_in;}
998 };//end CommandAndOutput
999 
1009 
1010  //a method supposed to return
1011  //true if the current handler knows
1012  //how to handle a given debugger output
1013  virtual bool can_handle (CommandAndOutput &){return false;}
1014 
1015  //a method supposed to return
1016  //true if the current handler knows
1017  //how to handle a given debugger output
1018  virtual void do_handle (CommandAndOutput &) {}
1019 };//end struct OutputHandler
1021 
1033  struct Priv;
1034  SafePtr<Priv> m_priv;
1035 
1036  //non copyable
1038  OutputHandlerList& operator= (const OutputHandlerList&);
1039 
1040 public:
1041  OutputHandlerList ();
1042  ~OutputHandlerList ();
1043  void add (const OutputHandlerSafePtr &a_handler);
1044  void submit_command_and_output (CommandAndOutput &a_cao);
1045 };//end class OutputHandlerList
1046 
1047 NEMIVER_END_NAMESPACE (nemiver)
1048 
1049 #endif //__NMV_DBG_COMMON_H_H__
1050 
nemiver::Output::ResultRecord::breakpoints
map< string, IDebugger::Breakpoint > & breakpoints()
Definition: nmv-dbg-common.h:599
nemiver::Output::StreamRecord::debugger_console
void debugger_console(const UString &a_in)
Definition: nmv-dbg-common.h:238
nemiver::Output::OutOfBandRecord::stop_reason
void stop_reason(IDebugger::StopReason a_in)
Definition: nmv-dbg-common.h:357
nemiver::VarChange
Definition: nmv-dbg-common.h:38
nemiver::Output::OutOfBandRecord::thread_selected
bool thread_selected() const
Definition: nmv-dbg-common.h:369
nemiver::Output::ResultRecord::has_path_expression
void has_path_expression(bool a)
Definition: nmv-dbg-common.h:876
nemiver::Output::ResultRecord::has_changed_registers
bool has_changed_registers() const
Definition: nmv-dbg-common.h:628
nemiver::Output::out_of_band_records
const list< OutOfBandRecord > & out_of_band_records() const
Definition: nmv-dbg-common.h:930
nemiver::Output::OutOfBandRecord::OutOfBandRecord
OutOfBandRecord()
Definition: nmv-dbg-common.h:285
nemiver::Output::ResultRecord::current_frame_in_core_stack_trace
const IDebugger::Frame & current_frame_in_core_stack_trace()
Definition: nmv-dbg-common.h:761
nemiver::Output::OutOfBandRecord::signal_type
void signal_type(const UString &a_in)
Definition: nmv-dbg-common.h:376
nemiver::Output::ResultRecord::clear
void clear()
blank out everything
Definition: nmv-dbg-common.h:545
nemiver::Output::OutOfBandRecord::modified_breakpoint
IDebugger::Breakpoint & modified_breakpoint()
Definition: nmv-dbg-common.h:395
nemiver::Output::ResultRecord::has_thread_list
bool has_thread_list() const
Definition: nmv-dbg-common.h:725
nemiver::common::Object
Definition: nmv-object.h:43
nemiver::Output::ResultRecord::thread_id
int thread_id() const
Definition: nmv-dbg-common.h:738
nemiver::Command::tag0
void tag0(const UString &a_in)
Definition: nmv-dbg-common.h:151
nemiver::Output::OutOfBandRecord::thread_id
void thread_id(long a_in)
Definition: nmv-dbg-common.h:373
nemiver::Command::variable
void variable(const IDebugger::VariableSafePtr a_in)
Definition: nmv-dbg-common.h:165
nemiver::Output::ResultRecord::path_expression
const UString & path_expression() const
Definition: nmv-dbg-common.h:861
nemiver::apply_debugger_variable_change
void apply_debugger_variable_change(IDebugger::VariableSafePtr a_var, const VarChange &a_change)
nemiver::OutputHandler::do_handle
virtual void do_handle(CommandAndOutput &)
Definition: nmv-dbg-common.h:1018
nemiver::Output::ResultRecord::has_local_variables
void has_local_variables(bool a_in)
Definition: nmv-dbg-common.h:710
nemiver::Output::result_record
const ResultRecord & result_record() const
Definition: nmv-dbg-common.h:943
nemiver::Output::OutOfBandRecord::stream_record
StreamRecord & stream_record()
Definition: nmv-dbg-common.h:343
nemiver::Output::ResultRecord::has_var_changes
bool has_var_changes() const
Definition: nmv-dbg-common.h:824
nemiver
Definition: nmv-address.h:31
nemiver::Output::ResultRecord::local_variables
void local_variables(const list< IDebugger::VariableSafePtr > &a_in)
Definition: nmv-dbg-common.h:703
nemiver::Output::ResultRecord::new_num_children
void new_num_children(int a)
Definition: nmv-dbg-common.h:859
nemiver::CommandAndOutput::command
void command(const Command &a_in)
Definition: nmv-dbg-common.h:989
nemiver::Output::ResultRecord::memory_values
const std::vector< uint8_t > & memory_values() const
Definition: nmv-dbg-common.h:658
nemiver::Output::ResultRecord::ResultRecord
ResultRecord()
Definition: nmv-dbg-common.h:542
nemiver::Output::ResultRecord::has_current_frame_in_core_stack_trace
void has_current_frame_in_core_stack_trace(bool a_in)
Definition: nmv-dbg-common.h:775
nemiver::IDebugger::Frame::clear
void clear()
clears the current instance
Definition: nmv-i-debugger.h:441
nemiver::Output::ResultRecord::thread_id_got_selected
void thread_id_got_selected(bool a_in)
Definition: nmv-dbg-common.h:736
nemiver::Output::ResultRecord::frames_parameters
const map< int, list< IDebugger::VariableSafePtr > > & frames_parameters() const
Definition: nmv-dbg-common.h:685
nemiver::Output::ResultRecord::var_changes
const list< VarChangePtr > & var_changes() const
Definition: nmv-dbg-common.h:840
nemiver::Command::Command
Command(const UString &a_name, const UString &a_value)
Definition: nmv-dbg-common.h:116
nemiver::Output::ResultRecord::breakpoints
const map< string, IDebugger::Breakpoint > & breakpoints() const
Definition: nmv-dbg-common.h:595
nemiver::Output::OutOfBandRecord::thread_selected
void thread_selected(bool a_in)
Definition: nmv-dbg-common.h:370
nemiver::Output::has_out_of_band_record
void has_out_of_band_record(bool a_in)
Definition: nmv-dbg-common.h:928
nemiver::Output::ResultRecord::RUNNING
@ RUNNING
Definition: nmv-dbg-common.h:442
nemiver::CommandAndOutput::CommandAndOutput
CommandAndOutput()
Definition: nmv-dbg-common.h:976
nemiver::Command::cookie
const UString & cookie() const
Definition: nmv-dbg-common.h:147
nemiver::Output::ResultRecord::DONE
@ DONE
Definition: nmv-dbg-common.h:441
nemiver::Command::cookie
void cookie(const UString &a_in)
Definition: nmv-dbg-common.h:148
nemiver::CommandAndOutput::command
Command & command()
Definition: nmv-dbg-common.h:988
nemiver::Command::Command
Command()
Definition: nmv-dbg-common.h:99
nemiver::Output::ResultRecord::has_variable_children
bool has_variable_children() const
Definition: nmv-dbg-common.h:803
nemiver::Output::parsing_succeeded
bool parsing_succeeded() const
Definition: nmv-dbg-common.h:924
nemiver::Output::ResultRecord::call_stack
void call_stack(const vector< IDebugger::Frame > &a_in)
Definition: nmv-dbg-common.h:609
nemiver::Output::OutOfBandRecord::stream_record
const StreamRecord & stream_record() const
Definition: nmv-dbg-common.h:342
nemiver::Output::OutOfBandRecord::has_signal
bool has_signal() const
Definition: nmv-dbg-common.h:381
nemiver::Output::OutOfBandRecord::is_stopped
bool is_stopped() const
Definition: nmv-dbg-common.h:346
nemiver::Output::ResultRecord::memory_values
void memory_values(size_t a_address, const std::vector< uint8_t > &a_values)
Definition: nmv-dbg-common.h:663
nemiver::Output::ResultRecord::thread_id_selected_info
void thread_id_selected_info(int a_thread_id, const IDebugger::Frame &a_frame_in_thread)
Definition: nmv-dbg-common.h:743
nemiver::Output::OutOfBandRecord::is_stopped
void is_stopped(bool a_in)
Definition: nmv-dbg-common.h:347
nemiver::Output::ResultRecord::has_register_names
void has_register_names(bool a_flag)
Definition: nmv-dbg-common.h:615
nemiver::Output::OutOfBandRecord::frame
const IDebugger::Frame & frame() const
Definition: nmv-dbg-common.h:362
nemiver::Output::OutOfBandRecord::has_modified_breakpoint
bool has_modified_breakpoint() const
Definition: nmv-dbg-common.h:388
nemiver::Output::ResultRecord::register_names
const std::map< IDebugger::register_id_t, UString > & register_names() const
Definition: nmv-dbg-common.h:616
nemiver::Output::ResultRecord::has_frames_parameters
void has_frames_parameters(bool a_yes)
Definition: nmv-dbg-common.h:697
nemiver::Output::ResultRecord::has_local_variables
bool has_local_variables() const
Definition: nmv-dbg-common.h:709
nemiver::Output::ResultRecord::has_register_values
bool has_register_values() const
Definition: nmv-dbg-common.h:643
nemiver::Output::ResultRecord::has_variable_value
bool has_variable_value() const
Definition: nmv-dbg-common.h:722
nemiver::common::UString
Definition: nmv-ustring.h:45
nemiver::Output::has_result_record
void has_result_record(bool a_in)
Definition: nmv-dbg-common.h:941
nemiver::Command::tag4
const UString & tag4() const
Definition: nmv-dbg-common.h:162
nemiver::Command::variable
IDebugger::VariableSafePtr variable() const
Definition: nmv-dbg-common.h:166
nemiver::Output::ResultRecord::changed_registers
const std::list< IDebugger::register_id_t > & changed_registers() const
Definition: nmv-dbg-common.h:633
nemiver::Output::ResultRecord::local_variables
const list< IDebugger::VariableSafePtr > & local_variables() const
Definition: nmv-dbg-common.h:699
nemiver::Output::ResultRecord::has_asm_instruction_list
bool has_asm_instruction_list() const
Definition: nmv-dbg-common.h:670
nemiver::OutputHandler
Definition: nmv-dbg-common.h:1008
nemiver::CommandAndOutput::output
void output(const Output &a_in)
Definition: nmv-dbg-common.h:996
nemiver::Output::OutOfBandRecord::frame
void frame(const IDebugger::Frame &a_in)
Definition: nmv-dbg-common.h:364
nemiver::IDebugger::Variable::Format
Format
Definition: nmv-i-debugger.h:467
nemiver::OutputHandlerSafePtr
SafePtr< OutputHandler, ObjectRef, ObjectUnref > OutputHandlerSafePtr
Definition: nmv-dbg-common.h:1020
nemiver::Output::Output
Output()
Definition: nmv-dbg-common.h:914
nemiver::Output::ResultRecord::kind
Kind kind() const
Definition: nmv-dbg-common.h:592
nemiver::Command::Command
Command(const UString &a_value)
Definition: nmv-dbg-common.h:108
nemiver::Output::ResultRecord::has_call_stack
void has_call_stack(bool a_flag)
Definition: nmv-dbg-common.h:605
nemiver::Output::out_of_band_records
list< OutOfBandRecord > & out_of_band_records()
Definition: nmv-dbg-common.h:935
nemiver::Output::OutOfBandRecord::is_running
void is_running(bool a)
Definition: nmv-dbg-common.h:350
nemiver::Command::tag2
int tag2() const
Definition: nmv-dbg-common.h:156
nemiver::Output::ResultRecord::has_variable
void has_variable(bool a_in)
Definition: nmv-dbg-common.h:781
nemiver::Output::ResultRecord::has_file_list
void has_file_list(bool a_in)
Definition: nmv-dbg-common.h:752
nemiver::Command::tag3
void tag3(const UString &a_in)
Definition: nmv-dbg-common.h:160
nemiver::Output::raw_value
const UString & raw_value() const
Definition: nmv-dbg-common.h:921
nemiver::Output::Output
Output(const UString &a_value)
Definition: nmv-dbg-common.h:916
nemiver::Output::OutOfBandRecord::is_running
bool is_running() const
Definition: nmv-dbg-common.h:349
nemiver::Output::ResultRecord::has_variable_format
void has_variable_format(bool a_flag)
Definition: nmv-dbg-common.h:895
nemiver::Command::tag2
void tag2(int a_in)
Definition: nmv-dbg-common.h:157
nemiver::Output::OutOfBandRecords
list< OutOfBandRecord > OutOfBandRecords
Definition: nmv-dbg-common.h:425
nemiver::Output::ResultRecord::variable_format
void variable_format(IDebugger::Variable::Format a_format)
Definition: nmv-dbg-common.h:885
nemiver::Output::ResultRecord::has_register_names
bool has_register_names() const
Definition: nmv-dbg-common.h:614
nemiver::Output::ResultRecord::thread_id_got_selected
bool thread_id_got_selected() const
Definition: nmv-dbg-common.h:735
nemiver::CommandAndOutput::output
const Output & output() const
Definition: nmv-dbg-common.h:994
nemiver::Output::has_out_of_band_record
bool has_out_of_band_record() const
Definition: nmv-dbg-common.h:927
nemiver::Output::ResultRecord::Kind
Kind
Definition: nmv-dbg-common.h:439
nemiver::Output::ResultRecord::new_num_children
int new_num_children() const
Definition: nmv-dbg-common.h:858
nemiver::Output::ResultRecord::attrs
const map< UString, UString > & attrs() const
Definition: nmv-dbg-common.h:602
nemiver::Command::Command
Command(const UString &a_name, const UString &a_value, const UString &a_cookie)
Definition: nmv-dbg-common.h:125
nemiver::Command::tag0
const UString & tag0() const
Definition: nmv-dbg-common.h:150
nemiver::Output::ResultRecord::path_expression
void path_expression(const UString &a_str)
Definition: nmv-dbg-common.h:865
nemiver::Output::OutOfBandRecord::frame
IDebugger::Frame & frame()
Definition: nmv-dbg-common.h:363
nemiver::Output::StreamRecord::debugger_log
void debugger_log(const UString &a_in)
Definition: nmv-dbg-common.h:247
nemiver::IDebugger::Breakpoint::clear
void clear()
clear this instance of breakpoint
Definition: nmv-i-debugger.h:278
nemiver::Output::OutOfBandRecord::has_stream_record
void has_stream_record(bool a_in)
Definition: nmv-dbg-common.h:340
nemiver::Output::ResultRecord::has_current_frame_in_core_stack_trace
bool has_current_frame_in_core_stack_trace()
Definition: nmv-dbg-common.h:771
nemiver::Output::ResultRecord::has_call_stack
bool has_call_stack() const
Definition: nmv-dbg-common.h:604
nemiver::Output::StreamRecord::target_output
const UString & target_output() const
Definition: nmv-dbg-common.h:243
nemiver::Output::OutOfBandRecord::stop_reason_to_string
UString stop_reason_to_string(IDebugger::StopReason a_reason) const
Definition: nmv-dbg-common.h:287
nemiver::common::SafePtr::reset
void reset()
Definition: nmv-safe-ptr.h:178
nemiver::CommandAndOutput::has_command
bool has_command() const
Definition: nmv-dbg-common.h:984
nemiver::Command::value
void value(const UString &a_in)
Definition: nmv-dbg-common.h:145
nemiver::VarChangePtr
std::shared_ptr< VarChange > VarChangePtr
Definition: nmv-dbg-common.h:72
nemiver::Command::set_slot
void set_slot(T &a_slot)
Definition: nmv-dbg-common.h:174
nemiver::Output::ResultRecord::file_list
void file_list(const std::vector< UString > &a_in)
Definition: nmv-dbg-common.h:755
nemiver::Output::OutOfBandRecord::modified_breakpoint
void modified_breakpoint(const IDebugger::Breakpoint &b)
Definition: nmv-dbg-common.h:400
nemiver::Output::ResultRecord::has_variable_value
void has_variable_value(bool a_in)
Definition: nmv-dbg-common.h:723
nemiver::Output::OutOfBandRecord::stop_reason
IDebugger::StopReason stop_reason() const
Definition: nmv-dbg-common.h:352
nemiver::Command::tag3
const UString & tag3() const
Definition: nmv-dbg-common.h:159
nemiver::Output::StreamRecord::debugger_console
const UString & debugger_console() const
Definition: nmv-dbg-common.h:236
nemiver::Output::ResultRecord::call_stack
const vector< IDebugger::Frame > & call_stack() const
Definition: nmv-dbg-common.h:607
nemiver::Output::ResultRecord::changed_registers
void changed_registers(const std::list< IDebugger::register_id_t > &a_regs)
Definition: nmv-dbg-common.h:637
nemiver::Output::ResultRecord::has_var_changes
void has_var_changes(bool a_in)
Definition: nmv-dbg-common.h:828
nemiver::Output::ResultRecord::asm_instruction_list
const std::list< common::Asm > & asm_instruction_list() const
Definition: nmv-dbg-common.h:673
nemiver::Command::name
const UString & name() const
Definition: nmv-dbg-common.h:141
nemiver::IDebugger::Variable
Definition: nmv-i-debugger.h:465
nemiver::Output::OutOfBandRecord::stream_record
void stream_record(const StreamRecord &a_in)
Definition: nmv-dbg-common.h:344
nemiver::Output::ResultRecord::has_memory_values
void has_memory_values(bool a_flag)
Definition: nmv-dbg-common.h:657
nemiver::Output::StreamRecord::StreamRecord
StreamRecord()
Definition: nmv-dbg-common.h:224
nemiver::Command::clear
void clear()
Definition: nmv-dbg-common.h:190
nemiver::Output::ResultRecord::has_frames_parameters
bool has_frames_parameters() const
Definition: nmv-dbg-common.h:696
nemiver::Output
the output received from the debugger.
Definition: nmv-dbg-common.h:209
nemiver::IDebugger::StopReason
StopReason
Definition: nmv-i-debugger.h:1065
nemiver::Output::ResultRecord::has_thread_list
void has_thread_list(bool a_in)
Definition: nmv-dbg-common.h:726
nemiver::Output::ResultRecord::variable
void variable(const IDebugger::VariableSafePtr a_var)
Definition: nmv-dbg-common.h:787
nemiver::CommandAndOutput
Definition: nmv-dbg-common.h:961
nemiver::Output::ResultRecord::register_values
const std::map< IDebugger::register_id_t, UString > & register_values() const
Definition: nmv-dbg-common.h:645
nemiver::OutputHandler::can_handle
virtual bool can_handle(CommandAndOutput &)
Definition: nmv-dbg-common.h:1013
nemiver::Output::StreamRecord::debugger_log
const UString & debugger_log() const
Definition: nmv-dbg-common.h:246
nemiver::Output::ResultRecord::variable_value
void variable_value(const IDebugger::VariableSafePtr &a_in)
Definition: nmv-dbg-common.h:716
nemiver::Output::result_record
ResultRecord & result_record()
Definition: nmv-dbg-common.h:944
nemiver::Output::ResultRecord::variable
IDebugger::VariableSafePtr variable() const
Definition: nmv-dbg-common.h:783
nemiver::Output::OutOfBandRecord
the out of band record we got from GDB.
Definition: nmv-dbg-common.h:264
nemiver::Output::ResultRecord::has_asm_instruction_list
void has_asm_instruction_list(bool a)
Definition: nmv-dbg-common.h:671
nemiver::Output::ResultRecord::has_path_expression
bool has_path_expression() const
Definition: nmv-dbg-common.h:872
nemiver::Output::StreamRecord
debugger stream record.
Definition: nmv-dbg-common.h:217
nemiver::Output::ResultRecord::number_of_variables_deleted
void number_of_variables_deleted(int a_nb)
Definition: nmv-dbg-common.h:798
nemiver::Command::should_emit_signal
bool should_emit_signal() const
Definition: nmv-dbg-common.h:185
nemiver::Command::tag4
void tag4(const UString &a_in)
Definition: nmv-dbg-common.h:163
nmv-i-debugger.h
nemiver::Command::get_slot
const T & get_slot() const
Definition: nmv-dbg-common.h:180
nemiver::CommandAndOutput::command
const Command & command() const
Definition: nmv-dbg-common.h:987
nemiver::Output::ResultRecord::has_changed_registers
void has_changed_registers(bool a_flag)
Definition: nmv-dbg-common.h:629
nemiver::IDebugger::Frame
a function frame as seen by the debugger.
Definition: nmv-i-debugger.h:372
nemiver::Output::ResultRecord::has_register_values
void has_register_values(bool a_flag)
Definition: nmv-dbg-common.h:644
nemiver::Command::value
const UString & value() const
Definition: nmv-dbg-common.h:144
nemiver::Output::ResultRecord::frame_in_thread
const IDebugger::Frame & frame_in_thread() const
Definition: nmv-dbg-common.h:739
nemiver::Output::ResultRecord::file_list
const std::vector< UString > & file_list() const
Definition: nmv-dbg-common.h:754
nemiver::IDebugger::Breakpoint
a breakpoint descriptor
Definition: nmv-i-debugger.h:90
nemiver::Output::OutOfBandRecord::breakpoint_number
long breakpoint_number() const
Definition: nmv-dbg-common.h:366
nemiver::Output::clear
void clear()
Definition: nmv-dbg-common.h:948
nemiver::Output::StreamRecord::clear
void clear()
Definition: nmv-dbg-common.h:250
nemiver::Command::name
void name(const UString &a_in)
Definition: nmv-dbg-common.h:142
nemiver::Output::OutOfBandRecord::breakpoint_number
void breakpoint_number(long a_in)
Definition: nmv-dbg-common.h:367
nemiver::CommandAndOutput::CommandAndOutput
CommandAndOutput(const Command &a_command, const Output &a_output)
Definition: nmv-dbg-common.h:968
nemiver::OutputHandlerList
Definition: nmv-dbg-common.h:1032
nemiver::Output::ResultRecord::memory_address
size_t memory_address() const
Definition: nmv-dbg-common.h:662
nemiver::Output::OutOfBandRecord::has_frame
bool has_frame() const
Definition: nmv-dbg-common.h:359
nemiver::Output::StreamRecord::StreamRecord
StreamRecord(const UString &a_debugger_console, const UString &a_target_output, const UString &a_debugger_log)
Definition: nmv-dbg-common.h:225
nemiver::Output::OutOfBandRecord::stop_reason_as_str
UString stop_reason_as_str() const
Definition: nmv-dbg-common.h:353
nemiver::Output::OutOfBandRecord::has_frame
void has_frame(bool a_in)
Definition: nmv-dbg-common.h:360
nemiver::CommandAndOutput::output
Output & output()
Definition: nmv-dbg-common.h:995
nemiver::Output::ResultRecord::has_variable_format
bool has_variable_format() const
Definition: nmv-dbg-common.h:891
nemiver::Output::ResultRecord::kind
void kind(Kind a_in)
Definition: nmv-dbg-common.h:593
nemiver::Output::ResultRecord::attrs
map< UString, UString > & attrs()
Definition: nmv-dbg-common.h:601
nemiver::Output::ResultRecord::var_changes
void var_changes(const list< VarChangePtr > &a_in)
Definition: nmv-dbg-common.h:852
nemiver::Output::StreamRecord::target_output
void target_output(const UString &a_in)
Definition: nmv-dbg-common.h:244
nemiver::Command::tag1
void tag1(const UString &a_in)
Definition: nmv-dbg-common.h:154
nemiver::Output::OutOfBandRecord::clear
void clear()
Definition: nmv-dbg-common.h:408
nemiver::Output::OutOfBandRecord::signal_meaning
void signal_meaning(const UString &a_in)
Definition: nmv-dbg-common.h:379
nemiver::Output::ResultRecord::has_variable_children
void has_variable_children(bool a_in)
Definition: nmv-dbg-common.h:807
nemiver::Output::ResultRecord::ERROR
@ ERROR
Definition: nmv-dbg-common.h:444
nemiver::Output::ResultRecord::thread_list
const std::list< int > & thread_list() const
Definition: nmv-dbg-common.h:728
nemiver::Output::ResultRecord::variable_value
const IDebugger::VariableSafePtr & variable_value() const
Definition: nmv-dbg-common.h:712
nemiver::Output::ResultRecord::call_stack
vector< IDebugger::Frame > & call_stack()
Definition: nmv-dbg-common.h:608
nemiver::Command
A container of the textual command sent to the debugger.
Definition: nmv-dbg-common.h:84
nemiver::common::SafePtr< Variable, ObjectRef, ObjectUnref >
nemiver::Output::ResultRecord::has_memory_values
bool has_memory_values() const
Definition: nmv-dbg-common.h:656
nemiver::Output::result_record
void result_record(const ResultRecord &a_in)
Definition: nmv-dbg-common.h:945
nemiver::Command::should_emit_signal
void should_emit_signal(bool a)
Definition: nmv-dbg-common.h:186
nemiver::Output::ResultRecord::thread_list
void thread_list(const std::list< int > &a_in)
Definition: nmv-dbg-common.h:729
nemiver::Command::tag1
const UString & tag1() const
Definition: nmv-dbg-common.h:153
nemiver::Command::has_slot
bool has_slot() const
Definition: nmv-dbg-common.h:168
nemiver::Output::OutOfBandRecord::has_stream_record
bool has_stream_record() const
\accessors
Definition: nmv-dbg-common.h:339
nemiver::Output::ResultRecord::has_file_list
bool has_file_list() const
Definition: nmv-dbg-common.h:751
nemiver::Output::StreamRecord::debugger_console
UString & debugger_console()
Definition: nmv-dbg-common.h:237
nemiver::Output::ResultRecord::has_variable
bool has_variable()
Definition: nmv-dbg-common.h:780
nemiver::Output::ResultRecord::CONNECTED
@ CONNECTED
Definition: nmv-dbg-common.h:443
nemiver::Output::ResultRecord::variable_children
void variable_children(const vector< IDebugger::VariableSafePtr > &a_vars)
Definition: nmv-dbg-common.h:818
nemiver::CommandAndOutput::has_command
void has_command(bool a_in)
Definition: nmv-dbg-common.h:985
nemiver::Output::OutOfBandRecord::signal_meaning
const UString & signal_meaning() const
Definition: nmv-dbg-common.h:378
nemiver::update_debugger_variable
void update_debugger_variable(IDebugger::Variable &a_to, IDebugger::Variable &a_from)
nemiver::Output::ResultRecord
Definition: nmv-dbg-common.h:437
nemiver::Output::parsing_succeeded
void parsing_succeeded(bool a_in)
Definition: nmv-dbg-common.h:925
nemiver::Output::raw_value
void raw_value(const UString &a_in)
Definition: nmv-dbg-common.h:922
nemiver::Output::ResultRecord::current_frame_in_core_stack_trace
void current_frame_in_core_stack_trace(const IDebugger::Frame &a_in)
Definition: nmv-dbg-common.h:765
nemiver::Output::ResultRecord::variable_format
IDebugger::Variable::Format variable_format() const
Definition: nmv-dbg-common.h:881
nemiver::Output::ResultRecord::variable_children
const vector< IDebugger::VariableSafePtr > & variable_children() const
Definition: nmv-dbg-common.h:813
nemiver::Output::has_result_record
bool has_result_record() const
Definition: nmv-dbg-common.h:940
nemiver::Output::ResultRecord::number_of_variables_deleted
int number_of_variables_deleted() const
Definition: nmv-dbg-common.h:793
nemiver::Output::OutOfBandRecord::thread_id
long thread_id() const
Definition: nmv-dbg-common.h:372
nemiver::Output::OutOfBandRecord::signal_type
const UString & signal_type() const
Definition: nmv-dbg-common.h:375