summaryrefslogtreecommitdiffstats
path: root/src/citra_qt/debugger/disassembler.hxx
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2014-07-23 16:43:46 +0200
committerbunnei <bunneidev@gmail.com>2014-07-23 16:43:46 +0200
commit866d2a62e95e10f477b6a32dd68258459409114a (patch)
tree33f90b5a87342f1fe150e4112506563f65cc4b4d /src/citra_qt/debugger/disassembler.hxx
parentMerge pull request #31 from neobrain/gpu_framebuffer (diff)
parentcitra-qt: Show function names in disassembler based on bunnei's suggestion. (diff)
downloadyuzu-866d2a62e95e10f477b6a32dd68258459409114a.tar
yuzu-866d2a62e95e10f477b6a32dd68258459409114a.tar.gz
yuzu-866d2a62e95e10f477b6a32dd68258459409114a.tar.bz2
yuzu-866d2a62e95e10f477b6a32dd68258459409114a.tar.lz
yuzu-866d2a62e95e10f477b6a32dd68258459409114a.tar.xz
yuzu-866d2a62e95e10f477b6a32dd68258459409114a.tar.zst
yuzu-866d2a62e95e10f477b6a32dd68258459409114a.zip
Diffstat (limited to 'src/citra_qt/debugger/disassembler.hxx')
-rw-r--r--src/citra_qt/debugger/disassembler.hxx41
1 files changed, 36 insertions, 5 deletions
diff --git a/src/citra_qt/debugger/disassembler.hxx b/src/citra_qt/debugger/disassembler.hxx
index e668bbbeb..a842da956 100644
--- a/src/citra_qt/debugger/disassembler.hxx
+++ b/src/citra_qt/debugger/disassembler.hxx
@@ -1,3 +1,4 @@
+#include <QAbstractItemModel>
#include <QDockWidget>
#include "ui_disassembler.h"
@@ -5,9 +6,41 @@
#include "common/break_points.h"
class QAction;
-class QStandardItemModel;
class EmuThread;
+class DisassemblerModel : public QAbstractItemModel
+{
+ Q_OBJECT
+
+public:
+ DisassemblerModel(QObject* parent);
+
+ QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
+ QModelIndex parent(const QModelIndex& child) const override;
+ int columnCount(const QModelIndex& parent = QModelIndex()) const override;
+ int rowCount(const QModelIndex& parent = QModelIndex()) const override;
+ QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
+
+ QModelIndex IndexFromAbsoluteAddress(unsigned int address) const;
+ const BreakPoints& GetBreakPoints() const;
+
+public slots:
+ void ParseFromAddress(unsigned int address);
+ void OnSelectionChanged(const QModelIndex&);
+ void OnSetOrUnsetBreakpoint();
+ void SetNextInstruction(unsigned int address);
+
+private:
+ unsigned int base_address;
+ unsigned int code_size;
+ unsigned int program_counter;
+
+ QModelIndex selection;
+
+ // TODO: Make BreakPoints less crappy (i.e. const-correct) so that this needn't be mutable.
+ mutable BreakPoints breakpoints;
+};
+
class DisassemblerWidget : public QDockWidget
{
Q_OBJECT
@@ -18,7 +51,6 @@ public:
void Init();
public slots:
- void OnSetBreakpoint();
void OnContinue();
void OnStep();
void OnStepInto();
@@ -32,11 +64,10 @@ private:
int SelectedRow();
Ui::DockWidget disasm_ui;
- QStandardItemModel* model;
- u32 base_addr;
+ DisassemblerModel* model;
- BreakPoints* breakpoints;
+ u32 base_addr;
EmuThread& emu_thread;
};