mirror of
https://github.com/PCSX2/pcsx2.git
synced 2025-04-02 10:52:54 -04:00
Tightens the data flow between the CPU and UI threads to resolve multiple race conditions, such as: 1. Unbinding a debug interface update CB while it's in use, causing a possible use-after-free. 2. Binding breakpoints via the disassembly widget that would read a stale local variable, and bind the breakpoint to a bogus address + probably more subtle races that are now resolved
36 lines
663 B
C++
36 lines
663 B
C++
// SPDX-FileCopyrightText: 2002-2023 PCSX2 Dev Team
|
|
// SPDX-License-Identifier: LGPL-3.0+
|
|
|
|
#pragma once
|
|
|
|
#include "CpuWidget.h"
|
|
|
|
#include "ui_DebuggerWindow.h"
|
|
|
|
class DebuggerWindow : public QMainWindow
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
DebuggerWindow(QWidget* parent);
|
|
~DebuggerWindow();
|
|
|
|
public slots:
|
|
void onVMStateChanged();
|
|
void onRunPause();
|
|
void onStepInto();
|
|
void onStepOver();
|
|
void onStepOut();
|
|
|
|
private:
|
|
Ui::DebuggerWindow m_ui;
|
|
QAction* m_actionRunPause;
|
|
QAction* m_actionStepInto;
|
|
QAction* m_actionStepOver;
|
|
QAction* m_actionStepOut;
|
|
|
|
CpuWidget* m_cpuWidget_r5900;
|
|
CpuWidget* m_cpuWidget_r3000;
|
|
|
|
void setTabActiveStyle(BreakPointCpu toggledCPU);
|
|
};
|