From 791091ca1f8d4c07506fb9910c981b110c4e8251 Mon Sep 17 00:00:00 2001 From: trigger Date: Tue, 29 Apr 2025 15:29:42 -0700 Subject: [PATCH] ShowAtPC static method --- rpcs3/rpcs3qt/debugger_frame.cpp | 20 +------------------- rpcs3/rpcs3qt/memory_viewer_panel.cpp | 23 +++++++++++++++++++++++ rpcs3/rpcs3qt/memory_viewer_panel.h | 5 +++-- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/rpcs3/rpcs3qt/debugger_frame.cpp b/rpcs3/rpcs3qt/debugger_frame.cpp index 9517973060..e5824330ff 100644 --- a/rpcs3/rpcs3qt/debugger_frame.cpp +++ b/rpcs3/rpcs3qt/debugger_frame.cpp @@ -55,9 +55,6 @@ extern bool is_using_interpreter(thread_class t_class); extern std::shared_ptr make_disasm(const cpu_thread* cpu, shared_ptr handle); -class CPUDisAsm; -std::shared_ptr make_basic_ppu_disasm(); - debugger_frame::debugger_frame(std::shared_ptr gui_settings, QWidget *parent) : custom_dock_widget(tr("Debugger [Press F1 for Help]"), parent) , m_gui_settings(std::move(gui_settings)) @@ -1749,20 +1746,5 @@ void debugger_frame::RegsShowMemoryViewerAction() const quint64 value = norm.toULongLong(&ok, 16); const u32 pc = static_cast(value); - const u32 id = idm::last_id(); - auto handle_ptr = idm::get_unlocked(id); - - if (!handle_ptr) - { - idm::make(this, make_basic_ppu_disasm(), pc); - return; - } - - handle_ptr->m_mvp->SetPC(pc); - handle_ptr->m_mvp->raise(); - handle_ptr->m_mvp->scroll(0); - if (!handle_ptr->m_mvp->isVisible()) - { - handle_ptr->m_mvp->show(); - } + memory_viewer_panel::ShowAtPC(pc); } diff --git a/rpcs3/rpcs3qt/memory_viewer_panel.cpp b/rpcs3/rpcs3qt/memory_viewer_panel.cpp index 8905744e77..67882039bf 100644 --- a/rpcs3/rpcs3qt/memory_viewer_panel.cpp +++ b/rpcs3/rpcs3qt/memory_viewer_panel.cpp @@ -28,6 +28,9 @@ LOG_CHANNEL(gui_log, "GUI"); +class CPUDisAsm; +std::shared_ptr make_basic_ppu_disasm(); + constexpr auto qstr = QString::fromStdString; memory_viewer_panel::memory_viewer_panel(QWidget* parent, std::shared_ptr disasm, u32 addr, std::function func) @@ -1244,3 +1247,23 @@ void memory_viewer_panel::ShowImage(QWidget* parent, u32 addr, color_format form f_image_viewer->setFixedSize(f_image_viewer->sizeHint()); }); } + +void memory_viewer_panel::ShowAtPC(u32 pc) +{ + const u32 id = idm::last_id(); + auto handle_ptr = idm::get_unlocked(id); + + if (!handle_ptr) + { + idm::make(nullptr, make_basic_ppu_disasm(), pc); + return; + } + + handle_ptr->m_mvp->SetPC(pc); + handle_ptr->m_mvp->raise(); + handle_ptr->m_mvp->scroll(0); + if (!handle_ptr->m_mvp->isVisible()) + { + handle_ptr->m_mvp->show(); + } +} \ No newline at end of file diff --git a/rpcs3/rpcs3qt/memory_viewer_panel.h b/rpcs3/rpcs3qt/memory_viewer_panel.h index ea1f6eb70a..adc4c4bfad 100644 --- a/rpcs3/rpcs3qt/memory_viewer_panel.h +++ b/rpcs3/rpcs3qt/memory_viewer_panel.h @@ -55,8 +55,7 @@ public: memory_viewer_panel(QWidget* parent, std::shared_ptr disasm, u32 addr = 0, std::function func = []() -> cpu_thread* { return {}; }); ~memory_viewer_panel(); - void scroll(s32 steps); - void SetPC(const uint pc); + static void ShowAtPC(u32 pc); enum class color_format : int { @@ -109,7 +108,9 @@ private: search_mode m_modes{}; std::string getHeaderAtAddr(u32 addr) const; + void scroll(s32 steps); void* to_ptr(u32 addr, u32 size = 1) const; + void SetPC(const uint pc); void ShowMemory();