OpenASIP  2.0
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ProximBreakpointWindow Class Reference

#include <ProximBreakpointWindow.hh>

Inheritance diagram for ProximBreakpointWindow:
Inheritance graph
Collaboration diagram for ProximBreakpointWindow:
Collaboration graph

Public Member Functions

 ProximBreakpointWindow (ProximMainFrame *parent, wxWindowID id)
 
virtual ~ProximBreakpointWindow ()
 
virtual void reset ()
 

Private Types

enum  {
  ID_NOTEBOOK = 10000, ID_HELP, ID_CLOSE, ID_LINE,
  ID_LOOKUP_BREAKPOINT, ID_BREAKPOINT_PROPERTIES, ID_DELETE_BREAKPOINT, ID_ADD_BREAKPOINT,
  ID_BREAKPOINT_ENABLED, ID_WATCH_PROPERTIES, ID_DELETE_WATCH, ID_ADD_WATCH,
  ID_WATCH_ENABLED, ID_BREAKPOINT_LIST, ID_WATCH_LIST
}
 Widget IDs. More...
 

Private Member Functions

wxSizer * createContents (wxWindow *parent, bool call_fit, bool set_sizer)
 
wxSizer * createBreakpointTab (wxWindow *parent, bool call_fit=true, bool set_sizer=true)
 
wxSizer * createWatchTab (wxWindow *parent, bool call_fit=true, bool set_sizer=true)
 
void refreshStopPoints ()
 
void onClose (wxCommandEvent &event)
 
void onBreakpointsModified (SimulatorEvent &event)
 
void onDeleteBreakpoint (wxCommandEvent &event)
 
void onDeleteWatch (wxCommandEvent &event)
 
void onBreakpointLookup (wxCommandEvent &event)
 
void onBreakpointProperties (wxCommandEvent &event)
 
void onBreakpointSelection (wxListEvent &event)
 
void onAddBreakpoint (wxCommandEvent &event)
 
void onAddWatch (wxCommandEvent &event)
 
void onWatchProperties (wxCommandEvent &event)
 

Private Attributes

wxListCtrl * breakpointList_
 List widget for breakpoints. More...
 
wxListCtrl * watchList_
 List widget for watches. More...
 
std::map< unsigned, unsigned > bpListItemHandle_
 Map for translating breakpoint list item numbers to stop point handles. More...
 
std::map< unsigned, unsigned > watchListItemHandle_
 Map for translating watch list item numbers to stop point handles. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ProximSimulatorWindow
 ProximSimulatorWindow (ProximMainFrame *mainFrame, wxWindowID id=-1, wxPoint pos=wxDefaultPosition, wxSize size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
 
virtual ~ProximSimulatorWindow ()
 

Detailed Description

Proxim window for managing simulation breakpoints and watches.

Definition at line 47 of file ProximBreakpointWindow.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private

Widget IDs.

Enumerator
ID_NOTEBOOK 
ID_HELP 
ID_CLOSE 
ID_LINE 
ID_LOOKUP_BREAKPOINT 
ID_BREAKPOINT_PROPERTIES 
ID_DELETE_BREAKPOINT 
ID_ADD_BREAKPOINT 
ID_BREAKPOINT_ENABLED 
ID_WATCH_PROPERTIES 
ID_DELETE_WATCH 
ID_ADD_WATCH 
ID_WATCH_ENABLED 
ID_BREAKPOINT_LIST 
ID_WATCH_LIST 

Definition at line 83 of file ProximBreakpointWindow.hh.

Constructor & Destructor Documentation

◆ ProximBreakpointWindow()

ProximBreakpointWindow::ProximBreakpointWindow ( ProximMainFrame parent,
wxWindowID  id 
)

The Constructor.

Parameters
parentParent window of the frame.
idWindow ID.

Definition at line 80 of file ProximBreakpointWindow.cc.

81  :
82  ProximSimulatorWindow(parent, id, wxDefaultPosition, wxDefaultSize, 0),
83  breakpointList_(NULL),
84  watchList_(NULL) {
85 
86  createContents(this, true, true);
87 
88  breakpointList_->InsertColumn(0, _T("Handle"), wxLIST_FORMAT_LEFT, 100);
89  breakpointList_->InsertColumn(1, _T("Enabled"), wxLIST_FORMAT_CENTER, 80);
90  breakpointList_->InsertColumn(2, _T("Address"), wxLIST_FORMAT_LEFT, 300);
91 
92  watchList_->InsertColumn(0, _T("Handle"), wxLIST_FORMAT_LEFT, 100);
93  watchList_->InsertColumn(1, _T("Enabled"), wxLIST_FORMAT_CENTER, 80);
94  watchList_->InsertColumn(2, _T("Expression"), wxLIST_FORMAT_LEFT, 300);
95 
97 
98  if (simulation->isSimulationInitialized() ||
99  simulation->isSimulationRunning() ||
100  simulation->isSimulationStopped() ||
101  simulation->hasSimulationEnded()) {
102 
104  }
105 
106  // Disable conditional buttons initially.
107  FindWindow(ID_DELETE_BREAKPOINT)->Disable();
108  FindWindow(ID_LOOKUP_BREAKPOINT)->Disable();
110  FindWindow(ID_DELETE_WATCH)->Disable();
111  FindWindow(ID_BREAKPOINT_ENABLED)->Disable();
112  FindWindow(ID_WATCH_ENABLED)->Disable();
113  FindWindow(ID_WATCH_PROPERTIES)->Disable();
114 }

References ProximToolbox::frontend(), SimulatorFrontend::hasSimulationEnded(), SimulatorFrontend::isSimulationInitialized(), SimulatorFrontend::isSimulationRunning(), and SimulatorFrontend::isSimulationStopped().

Here is the call graph for this function:

◆ ~ProximBreakpointWindow()

ProximBreakpointWindow::~ProximBreakpointWindow ( )
virtual

The Destructor.

Definition at line 119 of file ProximBreakpointWindow.cc.

119  {
120 }

Member Function Documentation

◆ createBreakpointTab()

wxSizer * ProximBreakpointWindow::createBreakpointTab ( wxWindow *  parent,
bool  call_fit = true,
bool  set_sizer = true 
)
private

Creates the breakpoint tab.

Definition at line 483 of file ProximBreakpointWindow.cc.

484  {
485 
486  wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );
487 
488  wxBoxSizer *item1 = new wxBoxSizer( wxHORIZONTAL );
489 
490  wxBoxSizer *item2 = new wxBoxSizer( wxVERTICAL );
491 
492  wxButton *item3 = new wxButton( parent, ID_BREAKPOINT_PROPERTIES, wxT("Properties..."), wxDefaultPosition, wxDefaultSize, 0 );
493  item2->Add( item3, 0, wxALIGN_CENTER|wxALL, 5 );
494 
495  wxButton *item4 = new wxButton( parent, ID_LOOKUP_BREAKPOINT, wxT("Lookup"), wxDefaultPosition, wxDefaultSize, 0 );
496  item2->Add( item4, 0, wxALIGN_CENTER|wxALL, 5 );
497 
498  wxButton *item5 = new wxButton( parent, ID_DELETE_BREAKPOINT, wxT("Delete"), wxDefaultPosition, wxDefaultSize, 0 );
499  item2->Add( item5, 0, wxALIGN_CENTER|wxALL, 5 );
500 
501  wxCheckBox *item6 = new wxCheckBox( parent, ID_BREAKPOINT_ENABLED, wxT("Enabled"), wxDefaultPosition, wxDefaultSize, 0 );
502  item2->Add( item6, 0, wxALIGN_CENTER|wxALL, 5 );
503 
504  item1->Add( item2, 0, wxALL, 5 );
505 
506  breakpointList_ = new wxListCtrl( parent, ID_BREAKPOINT_LIST, wxDefaultPosition, wxSize(400,300), wxLC_REPORT|wxSUNKEN_BORDER );
507  item1->Add( breakpointList_, 0, wxALIGN_CENTER|wxALL, 5 );
508 
509  item0->Add( item1, 0, wxALIGN_CENTER|wxALL, 5 );
510 
511  wxButton *item8 = new wxButton( parent, ID_ADD_BREAKPOINT, wxT("Add breakpoint..."), wxDefaultPosition, wxDefaultSize, 0 );
512  item0->Add( item8, 0, wxALL, 5 );
513 
514  if (set_sizer)
515  {
516  parent->SetSizer( item0 );
517  if (call_fit)
518  item0->SetSizeHints( parent );
519  }
520 
521  return item0;
522 }

References breakpointList_, ID_ADD_BREAKPOINT, ID_BREAKPOINT_ENABLED, ID_BREAKPOINT_LIST, ID_BREAKPOINT_PROPERTIES, ID_DELETE_BREAKPOINT, and ID_LOOKUP_BREAKPOINT.

Referenced by createContents().

◆ createContents()

wxSizer * ProximBreakpointWindow::createContents ( wxWindow *  parent,
bool  call_fit,
bool  set_sizer 
)
private

Creates the window contents.

Definition at line 434 of file ProximBreakpointWindow.cc.

435  {
436 
437  wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );
438 
439  wxNotebook *item2 = new wxNotebook( parent, ID_NOTEBOOK, wxDefaultPosition, wxSize(600,450), 0 );
440 #if !wxCHECK_VERSION(2,5,2)
441  wxNotebookSizer *item1 = new wxNotebookSizer( item2 );
442 #else
443  wxWindow *item1 = item2;
444 #endif
445 
446  wxPanel *item3 = new wxPanel( item2, -1 );
447  createBreakpointTab( item3, FALSE );
448  item2->AddPage( item3, wxT("Breakpoints") );
449 
450  wxPanel *item4 = new wxPanel( item2, -1 );
451  createWatchTab( item4, FALSE );
452  item2->AddPage( item4, wxT("Watches") );
453 
454  item0->Add( item1, 0, wxALIGN_CENTER|wxALL, 5 );
455 
456  wxStaticLine *item5 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL );
457  item0->Add( item5, 0, wxGROW|wxALL, 5 );
458 
459  wxGridSizer *item6 = new wxGridSizer( 2, 0, 0 );
460 
461  wxButton *item7 = new wxButton( parent, ID_HELP, wxT("&Help"), wxDefaultPosition, wxDefaultSize, 0 );
462  item6->Add( item7, 0, wxALL, 5 );
463 
464  wxButton *item8 = new wxButton( parent, ID_CLOSE, wxT("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
465  item6->Add( item8, 0, wxALIGN_RIGHT|wxALL, 5 );
466 
467  item0->Add( item6, 0, wxGROW|wxALL, 5 );
468 
469  if (set_sizer)
470  {
471  parent->SetSizer( item0 );
472  if (call_fit)
473  item0->SetSizeHints( parent );
474  }
475 
476  return item0;
477 }

References createBreakpointTab(), createWatchTab(), FALSE, ID_CLOSE, ID_HELP, ID_LINE, and ID_NOTEBOOK.

Here is the call graph for this function:

◆ createWatchTab()

wxSizer * ProximBreakpointWindow::createWatchTab ( wxWindow *  parent,
bool  call_fit = true,
bool  set_sizer = true 
)
private

Creates the watches tab.

Definition at line 528 of file ProximBreakpointWindow.cc.

529  {
530 
531  wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );
532 
533  wxBoxSizer *item1 = new wxBoxSizer( wxHORIZONTAL );
534 
535  wxBoxSizer *item2 = new wxBoxSizer( wxVERTICAL );
536 
537  wxButton *item3 = new wxButton( parent, ID_WATCH_PROPERTIES, wxT("Properties..."), wxDefaultPosition, wxDefaultSize, 0 );
538  item2->Add( item3, 0, wxALIGN_CENTER|wxALL, 5 );
539 
540  wxButton *item4 = new wxButton( parent, ID_DELETE_WATCH, wxT("Delete"), wxDefaultPosition, wxDefaultSize, 0 );
541  item2->Add( item4, 0, wxALIGN_CENTER|wxALL, 5 );
542 
543  wxCheckBox *item5 = new wxCheckBox( parent, ID_WATCH_ENABLED, wxT("Enabled"), wxDefaultPosition, wxDefaultSize, 0 );
544  item2->Add( item5, 0, wxALIGN_CENTER|wxALL, 5 );
545 
546  item1->Add( item2, 0, wxALL, 5 );
547 
548  watchList_ = new wxListCtrl( parent, ID_WATCH_LIST, wxDefaultPosition, wxSize(400,300), wxLC_REPORT|wxSUNKEN_BORDER );
549  item1->Add( watchList_, 0, wxALIGN_CENTER|wxALL, 5 );
550 
551  item0->Add( item1, 0, wxALIGN_CENTER|wxALL, 5 );
552 
553  wxButton *item7 = new wxButton( parent, ID_ADD_WATCH, wxT("Add watch..."), wxDefaultPosition, wxDefaultSize, 0 );
554  item0->Add( item7, 0, wxALL, 5 );
555 
556  if (set_sizer)
557  {
558  parent->SetSizer( item0 );
559  if (call_fit)
560  item0->SetSizeHints( parent );
561  }
562 
563  return item0;
564 }

References ID_ADD_WATCH, ID_DELETE_WATCH, ID_WATCH_ENABLED, ID_WATCH_LIST, ID_WATCH_PROPERTIES, and watchList_.

Referenced by createContents().

◆ onAddBreakpoint()

void ProximBreakpointWindow::onAddBreakpoint ( wxCommandEvent &  event)
private

Opens a dialog for adding a new breakpoint.

Definition at line 388 of file ProximBreakpointWindow.cc.

388  {
389 
391 
392  if (simulation->isSimulationInitialized() ||
393  simulation->isSimulationRunning() ||
394  simulation->isSimulationStopped()) {
395 
396  AddBreakpointDialog dialog(this, -1);
397  dialog.ShowModal();
398  } else {
399  wxString message = _T("Simulation not initialized.");
400  ErrorDialog error(this, message);
401  error.ShowModal();
402  }
403 }

References ProximToolbox::frontend(), SimulatorFrontend::isSimulationInitialized(), SimulatorFrontend::isSimulationRunning(), and SimulatorFrontend::isSimulationStopped().

Here is the call graph for this function:

◆ onAddWatch()

void ProximBreakpointWindow::onAddWatch ( wxCommandEvent &  event)
private

Opens a dialog for adding a new watch.

Definition at line 409 of file ProximBreakpointWindow.cc.

409  {
410 
412 
413  if (simulation->isSimulationInitialized() ||
414  simulation->isSimulationRunning() ||
415  simulation->isSimulationStopped()) {
416 
417  AddWatchDialog dialog(this, -1);
418  if (dialog.ShowModal() == wxID_OK) {
420  }
421 
422  } else {
423  wxString message = _T("Simulation not initialized.");
424  ErrorDialog error(this, message);
425  error.ShowModal();
426  }
427 }

References ProximToolbox::frontend(), SimulatorFrontend::isSimulationInitialized(), SimulatorFrontend::isSimulationRunning(), SimulatorFrontend::isSimulationStopped(), and refreshStopPoints().

Here is the call graph for this function:

◆ onBreakpointLookup()

void ProximBreakpointWindow::onBreakpointLookup ( wxCommandEvent &  event)
private

Shows the selected breakpoint location in the program disassembly window.

Definition at line 365 of file ProximBreakpointWindow.cc.

365  {
366 
367  long item = breakpointList_->GetNextItem(
368  -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
369 
370  if (item == -1) {
371  return;
372  }
373 
374  StopPointManager& manager =
375  wxGetApp().simulation()->frontend()->stopPointManager();
376 
377  int handle = bpListItemHandle_[item];
378  const Breakpoint& breakpoint = dynamic_cast<const Breakpoint&>(
379  manager.stopPointWithHandleConst(handle));
380  unsigned address = breakpoint.address();
382 }

References Breakpoint::address(), bpListItemHandle_, breakpointList_, ProximToolbox::disassemblyWindow(), ProximDisassemblyWindow::showAddress(), and StopPointManager::stopPointWithHandleConst().

Here is the call graph for this function:

◆ onBreakpointProperties()

void ProximBreakpointWindow::onBreakpointProperties ( wxCommandEvent &  event)
private

Opens dialog displaying properties of the selected breakpoint when the Properties-button is pressed.

Definition at line 138 of file ProximBreakpointWindow.cc.

138  {
139 
140  long item = breakpointList_->GetNextItem(
141  -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
142 
143  if (item == -1) {
144  return;
145  }
146 
147  StopPointManager& manager =
148  wxGetApp().simulation()->frontend()->stopPointManager();
149 
150  int handle = bpListItemHandle_[item];
151 
152  BreakpointPropertiesDialog dialog(this, manager, handle);
153  dialog.ShowModal();
154 
156 }

References bpListItemHandle_, breakpointList_, and refreshStopPoints().

Here is the call graph for this function:

◆ onBreakpointSelection()

void ProximBreakpointWindow::onBreakpointSelection ( wxListEvent &  event)
private

Enables and disables delete buttons for stop points according to stop point list selections.

Definition at line 305 of file ProximBreakpointWindow.cc.

305  {
306 
307  if (breakpointList_->GetSelectedItemCount() > 0) {
308  FindWindow(ID_DELETE_BREAKPOINT)->Enable();
309  FindWindow(ID_LOOKUP_BREAKPOINT)->Enable();
311  } else {
312  FindWindow(ID_DELETE_BREAKPOINT)->Disable();
313  FindWindow(ID_LOOKUP_BREAKPOINT)->Disable();
315  }
316 
317  if (watchList_->GetSelectedItemCount() > 0) {
318  FindWindow(ID_DELETE_WATCH)->Enable();
319  FindWindow(ID_WATCH_PROPERTIES)->Enable();
320  } else {
321  FindWindow(ID_DELETE_WATCH)->Disable();
322  FindWindow(ID_WATCH_PROPERTIES)->Disable();
323  }
324 }

References breakpointList_, ID_BREAKPOINT_PROPERTIES, ID_DELETE_BREAKPOINT, ID_DELETE_WATCH, ID_LOOKUP_BREAKPOINT, ID_WATCH_PROPERTIES, and watchList_.

Referenced by refreshStopPoints().

◆ onBreakpointsModified()

void ProximBreakpointWindow::onBreakpointsModified ( SimulatorEvent event)
private

Refreshes the breakpoint list when breakpoints are modified.

Parameters
eventEvent to handle.

Definition at line 333 of file ProximBreakpointWindow.cc.

333  {
335  // Skip event so it's passed to the parent class.
336  event.Skip();
337 }

References refreshStopPoints().

Here is the call graph for this function:

◆ onClose()

void ProximBreakpointWindow::onClose ( wxCommandEvent &  event)
private

Event handler for the close button.

Closes the window.

Definition at line 128 of file ProximBreakpointWindow.cc.

128  {
129  GetParent()->Close();
130 }

◆ onDeleteBreakpoint()

void ProximBreakpointWindow::onDeleteBreakpoint ( wxCommandEvent &  event)
private

Deletes the breakpoint selected in the breakpoint list.

Definition at line 282 of file ProximBreakpointWindow.cc.

282  {
283 
284  long item = breakpointList_->GetNextItem(
285  -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
286 
287  if (item == -1) {
288  return;
289  }
290 
291  StopPointManager& manager =
292  wxGetApp().simulation()->frontend()->stopPointManager();
293 
294  int handle = bpListItemHandle_[item];
295  manager.deleteStopPoint(handle);
297 }

References bpListItemHandle_, breakpointList_, StopPointManager::deleteStopPoint(), and refreshStopPoints().

Here is the call graph for this function:

◆ onDeleteWatch()

void ProximBreakpointWindow::onDeleteWatch ( wxCommandEvent &  event)
private

Deletes the watch selected in the watch list.

Definition at line 344 of file ProximBreakpointWindow.cc.

344  {
345 
346  long item = watchList_->GetNextItem(
347  -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
348 
349  if (item == -1) {
350  return;
351  }
352 
353  StopPointManager& manager =
354  wxGetApp().simulation()->frontend()->stopPointManager();
355 
356  int handle = watchListItemHandle_[item];
357  manager.deleteStopPoint(handle);
359 }

References StopPointManager::deleteStopPoint(), refreshStopPoints(), watchList_, and watchListItemHandle_.

Here is the call graph for this function:

◆ onWatchProperties()

void ProximBreakpointWindow::onWatchProperties ( wxCommandEvent &  event)
private

Opens dialog displaying properties of the selected watch when the Properties-button is pressed in the watches tab.

Definition at line 171 of file ProximBreakpointWindow.cc.

171  {
172 
173  long item = watchList_->GetNextItem(
174  -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
175 
176  if (item == -1) {
177  return;
178  }
179 
180  StopPointManager& manager =
181  wxGetApp().simulation()->frontend()->stopPointManager();
182 
183  int handle = watchListItemHandle_[item];
184 
185  WatchPropertiesDialog dialog(this, -1, manager, handle);
186  dialog.ShowModal();
187 
189 }

References refreshStopPoints(), watchList_, and watchListItemHandle_.

Here is the call graph for this function:

◆ refreshStopPoints()

void ProximBreakpointWindow::refreshStopPoints ( )
private

Updates the lists of breakpoints and watches.

Definition at line 195 of file ProximBreakpointWindow.cc.

195  {
196 
197  breakpointList_->DeleteAllItems();
198  watchList_->DeleteAllItems();
199 
200  // Clear "list item to handle" mapping.
201  bpListItemHandle_.clear();
202  watchListItemHandle_.clear();
203 
205 
206  if (frontend == NULL ||
207  !(frontend->isSimulationInitialized() ||
208  frontend->isSimulationRunning() ||
209  frontend->isSimulationStopped() ||
210  frontend->hasSimulationEnded())) {
211 
212  // Simulation not initiailized.
213  return;
214  }
215 
216  StopPointManager& manager = frontend->stopPointManager();
217 
218  int bpRow = 0;
219  int watchRow = 0;
220 
221 
222  // Add all stoppoints to appropriate lists.
223  for (unsigned i = 0; i < manager.stopPointCount(); i++) {
224 
225  unsigned handle = manager.stopPointHandle(i);
226  const StopPoint* stoppoint =
227  &manager.stopPointWithHandleConst(handle);
228 
229 
230  // Check if the stoppoint is breakpoint.
231  const Breakpoint* breakpoint =
232  dynamic_cast<const Breakpoint*>(stoppoint);
233 
234  if (breakpoint != NULL) {
235  // Stoppoint is breakpoint.
236  bpListItemHandle_.insert(
237  std::pair<unsigned, unsigned>(bpRow, handle));
238  breakpointList_->InsertItem(
239  bpRow, WxConversion::toWxString(handle));
240 
241  if (breakpoint->isEnabled()) {
242  breakpointList_->SetItem(bpRow, 1, _T("X"));
243 
244  }
245  InstructionAddress address = breakpoint->address();
246  breakpointList_->SetItem(
247  bpRow, 2, WxConversion::toWxString(address));
248  bpRow++;
249  continue;
250  }
251 
252 
253  // Check if the stoppoint is watch.
254  const Watch* watch = dynamic_cast<const Watch*>(stoppoint);
255 
256  if (watch != NULL) {
257  // Stoppoint is watch.
258  watchListItemHandle_.insert(
259  std::pair<unsigned, unsigned>(watchRow, handle));
260  watchList_->InsertItem(0, WxConversion::toWxString(handle));
261  if (watch->isEnabled()) {
262  watchList_->SetItem(bpRow, 1, _T("X"));
263  }
264  std::string expression = watch->expression().script()[0];
265  watchList_->SetItem(0, 2, WxConversion::toWxString(expression));
266  watchRow++;
267  continue;
268  }
269 
270  }
271 
272  // Update enabled/disabled state of the dialog buttons.
273  wxListEvent dummy;
275 }

References Breakpoint::address(), bpListItemHandle_, breakpointList_, dummy, Watch::expression(), ProximToolbox::frontend(), SimulatorFrontend::hasSimulationEnded(), StopPoint::isEnabled(), SimulatorFrontend::isSimulationInitialized(), SimulatorFrontend::isSimulationRunning(), SimulatorFrontend::isSimulationStopped(), onBreakpointSelection(), Script::script(), StopPointManager::stopPointCount(), StopPointManager::stopPointHandle(), SimulatorFrontend::stopPointManager(), StopPointManager::stopPointWithHandleConst(), WxConversion::toWxString(), watchList_, and watchListItemHandle_.

Referenced by onAddWatch(), onBreakpointProperties(), onBreakpointsModified(), onDeleteBreakpoint(), onDeleteWatch(), onWatchProperties(), and reset().

Here is the call graph for this function:

◆ reset()

void ProximBreakpointWindow::reset ( )
virtual

Called when the simulator resets program, machine or memory model.

Reimplemented from ProximSimulatorWindow.

Definition at line 162 of file ProximBreakpointWindow.cc.

162  {
164 }

References refreshStopPoints().

Here is the call graph for this function:

Member Data Documentation

◆ bpListItemHandle_

std::map<unsigned, unsigned> ProximBreakpointWindow::bpListItemHandle_
private

Map for translating breakpoint list item numbers to stop point handles.

Definition at line 78 of file ProximBreakpointWindow.hh.

Referenced by onBreakpointLookup(), onBreakpointProperties(), onDeleteBreakpoint(), and refreshStopPoints().

◆ breakpointList_

wxListCtrl* ProximBreakpointWindow::breakpointList_
private

◆ watchList_

wxListCtrl* ProximBreakpointWindow::watchList_
private

List widget for watches.

Definition at line 75 of file ProximBreakpointWindow.hh.

Referenced by createWatchTab(), onBreakpointSelection(), onDeleteWatch(), onWatchProperties(), and refreshStopPoints().

◆ watchListItemHandle_

std::map<unsigned, unsigned> ProximBreakpointWindow::watchListItemHandle_
private

Map for translating watch list item numbers to stop point handles.

Definition at line 80 of file ProximBreakpointWindow.hh.

Referenced by onDeleteWatch(), onWatchProperties(), and refreshStopPoints().


The documentation for this class was generated from the following files:
Script::script
virtual std::vector< std::string > script() const
Definition: Script.cc:106
ProximBreakpointWindow::ID_BREAKPOINT_LIST
@ ID_BREAKPOINT_LIST
Definition: ProximBreakpointWindow.hh:97
InstructionAddress
UInt32 InstructionAddress
Definition: BaseType.hh:175
Breakpoint::address
virtual InstructionAddress address() const
Definition: Breakpoint.cc:86
ProximToolbox::frontend
static TracedSimulatorFrontend * frontend()
Definition: ProximToolbox.cc:223
WxConversion::toWxString
static wxString toWxString(const std::string &source)
ProximBreakpointWindow::breakpointList_
wxListCtrl * breakpointList_
List widget for breakpoints.
Definition: ProximBreakpointWindow.hh:73
WatchPropertiesDialog
Definition: WatchPropertiesDialog.hh:43
ProximBreakpointWindow::watchList_
wxListCtrl * watchList_
List widget for watches.
Definition: ProximBreakpointWindow.hh:75
Breakpoint
Definition: Breakpoint.hh:50
Watch
Definition: Watch.hh:48
BreakpointPropertiesDialog
Definition: BreakpointPropertiesDialog.hh:45
SimulatorFrontend::isSimulationStopped
bool isSimulationStopped() const
Definition: SimulatorFrontend.cc:1271
ProximBreakpointWindow::ID_ADD_WATCH
@ ID_ADD_WATCH
Definition: ProximBreakpointWindow.hh:95
ProximBreakpointWindow::ID_BREAKPOINT_ENABLED
@ ID_BREAKPOINT_ENABLED
Definition: ProximBreakpointWindow.hh:92
StopPointManager::deleteStopPoint
void deleteStopPoint(unsigned int handle)
Definition: StopPointManager.cc:108
ProximBreakpointWindow::ID_WATCH_ENABLED
@ ID_WATCH_ENABLED
Definition: ProximBreakpointWindow.hh:96
FindWindow
Definition: FindWindow.hh:49
Watch::expression
virtual const ExpressionScript & expression() const
Definition: Watch.cc:88
ProximBreakpointWindow::ID_WATCH_LIST
@ ID_WATCH_LIST
Definition: ProximBreakpointWindow.hh:98
ProximBreakpointWindow::createBreakpointTab
wxSizer * createBreakpointTab(wxWindow *parent, bool call_fit=true, bool set_sizer=true)
Definition: ProximBreakpointWindow.cc:483
StopPointManager::stopPointCount
unsigned int stopPointCount()
Definition: StopPointManager.cc:269
StopPointManager::stopPointWithHandleConst
const StopPoint & stopPointWithHandleConst(unsigned int handle) const
Definition: StopPointManager.cc:248
ErrorDialog
Definition: ErrorDialog.hh:42
ProximBreakpointWindow::ID_DELETE_WATCH
@ ID_DELETE_WATCH
Definition: ProximBreakpointWindow.hh:94
StopPoint
Definition: StopPoint.hh:53
ProximBreakpointWindow::ID_DELETE_BREAKPOINT
@ ID_DELETE_BREAKPOINT
Definition: ProximBreakpointWindow.hh:90
StopPointManager
Definition: StopPointManager.hh:50
dummy
SimValue dummy(32)
a dummy simvalue which is given for operands that are not bound
AddBreakpointDialog
Definition: AddBreakpointDialog.hh:41
ProximBreakpointWindow::bpListItemHandle_
std::map< unsigned, unsigned > bpListItemHandle_
Map for translating breakpoint list item numbers to stop point handles.
Definition: ProximBreakpointWindow.hh:78
ProximBreakpointWindow::ID_NOTEBOOK
@ ID_NOTEBOOK
Definition: ProximBreakpointWindow.hh:84
SimulatorFrontend::isSimulationRunning
bool isSimulationRunning() const
Definition: SimulatorFrontend.cc:1260
ProximBreakpointWindow::ID_LINE
@ ID_LINE
Definition: ProximBreakpointWindow.hh:87
ProximBreakpointWindow::ID_WATCH_PROPERTIES
@ ID_WATCH_PROPERTIES
Definition: ProximBreakpointWindow.hh:93
ProximBreakpointWindow::onBreakpointSelection
void onBreakpointSelection(wxListEvent &event)
Definition: ProximBreakpointWindow.cc:305
ProximBreakpointWindow::createContents
wxSizer * createContents(wxWindow *parent, bool call_fit, bool set_sizer)
Definition: ProximBreakpointWindow.cc:434
ProximBreakpointWindow::refreshStopPoints
void refreshStopPoints()
Definition: ProximBreakpointWindow.cc:195
ProximBreakpointWindow::ID_CLOSE
@ ID_CLOSE
Definition: ProximBreakpointWindow.hh:86
StopPoint::isEnabled
virtual bool isEnabled() const
Definition: StopPoint.cc:73
FALSE
const string FALSE
Value used for false in attribute and element values.
Definition: GUIOptionsSerializer.cc:67
ProximBreakpointWindow::ID_BREAKPOINT_PROPERTIES
@ ID_BREAKPOINT_PROPERTIES
Definition: ProximBreakpointWindow.hh:89
ProximBreakpointWindow::ID_LOOKUP_BREAKPOINT
@ ID_LOOKUP_BREAKPOINT
Definition: ProximBreakpointWindow.hh:88
ProximBreakpointWindow::ID_ADD_BREAKPOINT
@ ID_ADD_BREAKPOINT
Definition: ProximBreakpointWindow.hh:91
ProximToolbox::disassemblyWindow
static ProximDisassemblyWindow * disassemblyWindow()
Definition: ProximToolbox.cc:150
SimulatorFrontend::hasSimulationEnded
bool hasSimulationEnded() const
Definition: SimulatorFrontend.cc:1283
ProximDisassemblyWindow::showAddress
void showAddress(unsigned address)
Definition: ProximDisassemblyWindow.cc:359
StopPointManager::stopPointHandle
unsigned int stopPointHandle(unsigned int index)
Definition: StopPointManager.cc:231
ProximBreakpointWindow::watchListItemHandle_
std::map< unsigned, unsigned > watchListItemHandle_
Map for translating watch list item numbers to stop point handles.
Definition: ProximBreakpointWindow.hh:80
SimulatorFrontend
Definition: SimulatorFrontend.hh:89
ProximBreakpointWindow::ID_HELP
@ ID_HELP
Definition: ProximBreakpointWindow.hh:85
SimulatorFrontend::isSimulationInitialized
bool isSimulationInitialized() const
Definition: SimulatorFrontend.cc:1228
SimulatorFrontend::stopPointManager
StopPointManager & stopPointManager()
Definition: SimulatorFrontend.cc:2108
AddWatchDialog
Definition: AddWatchDialog.hh:43
ProximSimulatorWindow::ProximSimulatorWindow
ProximSimulatorWindow(ProximMainFrame *mainFrame, wxWindowID id=-1, wxPoint pos=wxDefaultPosition, wxSize size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
Definition: ProximSimulatorWindow.cc:49
ProximBreakpointWindow::createWatchTab
wxSizer * createWatchTab(wxWindow *parent, bool call_fit=true, bool set_sizer=true)
Definition: ProximBreakpointWindow.cc:528