mirror of https://github.com/PCSX2/pcsx2.git
Debugger: Add disassembler toggle to go to the PC address on pause
This commit is contained in:
parent
7381a02dae
commit
d34f2ec142
|
@ -336,7 +336,7 @@ void CpuWidget::onVMPaused()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_ui.disassemblyWidget->gotoAddress(m_cpu.getPC(), false);
|
m_ui.disassemblyWidget->gotoProgramCounterOnPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
reloadCPUWidgets();
|
reloadCPUWidgets();
|
||||||
|
|
|
@ -656,6 +656,12 @@ void DisassemblyWidget::customMenuRequested(QPoint pos)
|
||||||
connect(action, &QAction::triggered, this, &DisassemblyWidget::contextGoToAddress);
|
connect(action, &QAction::triggered, this, &DisassemblyWidget::contextGoToAddress);
|
||||||
contextMenu->addAction(action = new QAction(tr("Go to in Memory View"), this));
|
contextMenu->addAction(action = new QAction(tr("Go to in Memory View"), this));
|
||||||
connect(action, &QAction::triggered, this, [this]() { gotoInMemory(m_selectedAddressStart); });
|
connect(action, &QAction::triggered, this, [this]() { gotoInMemory(m_selectedAddressStart); });
|
||||||
|
|
||||||
|
contextMenu->addAction(action = new QAction(tr("Go to PC on Pause"), this));
|
||||||
|
action->setCheckable(true);
|
||||||
|
action->setChecked(m_goToProgramCounterOnPause);
|
||||||
|
connect(action, &QAction::triggered, this, [this](bool value) { m_goToProgramCounterOnPause = value; });
|
||||||
|
|
||||||
contextMenu->addSeparator();
|
contextMenu->addSeparator();
|
||||||
contextMenu->addAction(action = new QAction(tr("Add Function"), this));
|
contextMenu->addAction(action = new QAction(tr("Add Function"), this));
|
||||||
connect(action, &QAction::triggered, this, &DisassemblyWidget::contextAddFunction);
|
connect(action, &QAction::triggered, this, &DisassemblyWidget::contextAddFunction);
|
||||||
|
@ -822,6 +828,12 @@ void DisassemblyWidget::gotoAddressAndSetFocus(u32 address)
|
||||||
gotoAddress(address, true);
|
gotoAddress(address, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DisassemblyWidget::gotoProgramCounterOnPause()
|
||||||
|
{
|
||||||
|
if (m_goToProgramCounterOnPause)
|
||||||
|
gotoAddress(m_cpu->getPC(), false);
|
||||||
|
}
|
||||||
|
|
||||||
void DisassemblyWidget::gotoAddress(u32 address, bool should_set_focus)
|
void DisassemblyWidget::gotoAddress(u32 address, bool should_set_focus)
|
||||||
{
|
{
|
||||||
const u32 destAddress = address & ~3;
|
const u32 destAddress = address & ~3;
|
||||||
|
|
|
@ -59,6 +59,7 @@ public slots:
|
||||||
void contextShowOpcode();
|
void contextShowOpcode();
|
||||||
|
|
||||||
void gotoAddressAndSetFocus(u32 address);
|
void gotoAddressAndSetFocus(u32 address);
|
||||||
|
void gotoProgramCounterOnPause();
|
||||||
void gotoAddress(u32 address, bool should_set_focus);
|
void gotoAddress(u32 address, bool should_set_focus);
|
||||||
|
|
||||||
void setDemangle(bool demangle) { m_demangleFunctions = demangle; };
|
void setDemangle(bool demangle) { m_demangleFunctions = demangle; };
|
||||||
|
@ -82,6 +83,7 @@ private:
|
||||||
|
|
||||||
bool m_demangleFunctions = true;
|
bool m_demangleFunctions = true;
|
||||||
bool m_showInstructionOpcode = true;
|
bool m_showInstructionOpcode = true;
|
||||||
|
bool m_goToProgramCounterOnPause = true;
|
||||||
DisassemblyManager m_disassemblyManager;
|
DisassemblyManager m_disassemblyManager;
|
||||||
|
|
||||||
inline QString DisassemblyStringFromAddress(u32 address, QFont font, u32 pc, bool selected);
|
inline QString DisassemblyStringFromAddress(u32 address, QFont font, u32 pc, bool selected);
|
||||||
|
|
Loading…
Reference in New Issue