1
0
Fork 0

GUI: step into/over (source) (implemented with conditional tracing)

This commit is contained in:
mrexodia 2016-07-09 17:58:13 +02:00
parent e8c2e5c572
commit e0497818c0
No known key found for this signature in database
GPG Key ID: D72F9A4FAA0073B4
6 changed files with 46 additions and 3 deletions

View File

@ -19,7 +19,7 @@ public:
protected:
QString paintContent(QPainter* painter, dsint rowBase, int rowOffset, int col, int x, int y, int w, int h);
private slots:
public slots:
void disassembleAtSlot(dsint va, dsint cip);
private:

View File

@ -459,9 +459,11 @@ void MainWindow::refreshShortcuts()
setGlobalShortcut(ui->actionRestart, ConfigShortcut("DebugRestart"));
setGlobalShortcut(ui->actionClose, ConfigShortcut("DebugClose"));
setGlobalShortcut(ui->actionStepInto, ConfigShortcut("DebugStepInto"));
setGlobalShortcut(ui->actioneStepInto, ConfigShortcut("DebugeStepInfo"));
setGlobalShortcut(ui->actioneStepInto, ConfigShortcut("DebugeStepInto"));
setGlobalShortcut(ui->actionStepIntoSource, ConfigShortcut("DebugStepIntoSource"));
setGlobalShortcut(ui->actionStepOver, ConfigShortcut("DebugStepOver"));
setGlobalShortcut(ui->actioneStepOver, ConfigShortcut("DebugeStepOver"));
setGlobalShortcut(ui->actionStepOverSource, ConfigShortcut("DebugStepOverSource"));
setGlobalShortcut(ui->actionRtr, ConfigShortcut("DebugRtr"));
setGlobalShortcut(ui->actioneRtr, ConfigShortcut("DebugeRtr"));
setGlobalShortcut(ui->actionRtu, ConfigShortcut("DebugRtu"));
@ -1533,3 +1535,13 @@ void MainWindow::clickFavouriteTool()
DbgCmdExec(action->text().toUtf8().constData());
}
}
void MainWindow::on_actionStepIntoSource_triggered()
{
DbgCmdExec("TraceIntoConditional srcline(cip)");
}
void MainWindow::on_actionStepOverSource_triggered()
{
DbgCmdExec("TraceOverConditional srcline(cip)");
}

View File

@ -237,6 +237,8 @@ public:
private slots:
void on_actionFaq_triggered();
void on_actionReloadStylesheet_triggered();
void on_actionStepIntoSource_triggered();
void on_actionStepOverSource_triggered();
};
#endif // MAINWINDOW_H

View File

@ -104,9 +104,11 @@
<addaction name="separator"/>
<addaction name="actionStepInto"/>
<addaction name="actioneStepInto"/>
<addaction name="actionStepIntoSource"/>
<addaction name="actionTicnd"/>
<addaction name="actionStepOver"/>
<addaction name="actioneStepOver"/>
<addaction name="actionStepOverSource"/>
<addaction name="actionRtu"/>
<addaction name="actionTocnd"/>
<addaction name="actionRtr"/>
@ -926,10 +928,32 @@
</property>
</action>
<action name="actionManageFavourite">
<property name="icon">
<iconset resource="../../resource.qrc">
<normaloff>:/icons/images/star.png</normaloff>:/icons/images/star.png</iconset>
</property>
<property name="text">
<string>&amp;Manage Favourite Tools...</string>
</property>
</action>
<action name="actionStepOverSource">
<property name="icon">
<iconset resource="../../resource.qrc">
<normaloff>:/icons/images/arrow-step-over.png</normaloff>:/icons/images/arrow-step-over.png</iconset>
</property>
<property name="text">
<string>Step over (source)</string>
</property>
</action>
<action name="actionStepIntoSource">
<property name="icon">
<iconset resource="../../resource.qrc">
<normaloff>:/icons/images/arrow-step-into.png</normaloff>:/icons/images/arrow-step-into.png</iconset>
</property>
<property name="text">
<string>Step into (source)</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>

View File

@ -17,6 +17,9 @@ SourceView::SourceView(QString path, int line, StdTable* parent)
loadFile();
setSelection(line);
auto cip = DbgValFromString("cip");
mList->disassembleAtSlot(0, cip);
mSearchList->disassembleAtSlot(0, cip);
}
void SourceView::setSelection(int line)

View File

@ -287,9 +287,11 @@ Configuration::Configuration() : QObject(), noMoreMsgbox(false)
defaultShortcuts.insert("DebugRestart", Shortcut(tr("Debug -> Restart"), "Ctrl+F2", true));
defaultShortcuts.insert("DebugClose", Shortcut(tr("Debug -> Close"), "Alt+F2", true));
defaultShortcuts.insert("DebugStepInto", Shortcut(tr("Debug -> Step into"), "F7", true));
defaultShortcuts.insert("DebugeStepInfo", Shortcut(tr("Debug -> Step into (skip execptions)"), "Shift+F7", true));
defaultShortcuts.insert("DebugeStepInto", Shortcut(tr("Debug -> Step into (skip execptions)"), "Shift+F7", true));
defaultShortcuts.insert("DebugStepIntoSource", Shortcut(tr("Debug -> Step into (source)"), "F11", true));
defaultShortcuts.insert("DebugStepOver", Shortcut(tr("Debug -> Step over"), "F8", true));
defaultShortcuts.insert("DebugeStepOver", Shortcut(tr("Debug -> Step over (skip execptions)"), "Shift+F8", true));
defaultShortcuts.insert("DebugStepOverSource", Shortcut(tr("Debug -> Step over (source)"), "F10", true));
defaultShortcuts.insert("DebugRtr", Shortcut(tr("Debug -> Execute till return"), "Ctrl+F9", true));
defaultShortcuts.insert("DebugeRtr", Shortcut(tr("Debug -> Execute till return (skip exceptions)"), "Ctrl+Shift+F9", true));
defaultShortcuts.insert("DebugRtu", Shortcut(tr("Debug -> Run to user code"), "Alt+F9", true));