diff options
author | bunnei <bunneidev@gmail.com> | 2014-07-23 16:43:46 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2014-07-23 16:43:46 +0200 |
commit | 866d2a62e95e10f477b6a32dd68258459409114a (patch) | |
tree | 33f90b5a87342f1fe150e4112506563f65cc4b4d /src/citra_qt/debugger/disassembler.hxx | |
parent | Merge pull request #31 from neobrain/gpu_framebuffer (diff) | |
parent | citra-qt: Show function names in disassembler based on bunnei's suggestion. (diff) | |
download | yuzu-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.hxx | 41 |
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; }; |