2024-07-30 11:42:36 +00:00
|
|
|
// SPDX-FileCopyrightText: 2002-2024 PCSX2 Dev Team
|
|
|
|
// SPDX-License-Identifier: GPL-3.0+
|
2022-12-24 06:51:44 +00:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "ui_CpuWidget.h"
|
|
|
|
|
|
|
|
#include "DebugTools/DebugInterface.h"
|
|
|
|
|
2023-01-03 05:27:05 +00:00
|
|
|
#include "Models/BreakpointModel.h"
|
2023-01-04 07:11:28 +00:00
|
|
|
#include "Models/ThreadModel.h"
|
2023-01-07 02:35:57 +00:00
|
|
|
#include "Models/StackModel.h"
|
2023-12-31 02:05:16 +00:00
|
|
|
#include "Models/SavedAddressesModel.h"
|
2024-08-26 20:57:31 +00:00
|
|
|
#include "Debugger/SymbolTree/SymbolTreeWidgets.h"
|
2023-01-03 05:27:05 +00:00
|
|
|
|
2022-12-24 06:51:44 +00:00
|
|
|
#include "QtHost.h"
|
|
|
|
#include <QtWidgets/QWidget>
|
|
|
|
#include <QtWidgets/QTableWidget>
|
2023-10-09 22:11:28 +00:00
|
|
|
#include <QtCore/QSortFilterProxyModel>
|
2023-11-19 14:41:27 +00:00
|
|
|
#include <QtCore/QTimer>
|
2022-12-24 06:51:44 +00:00
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
using namespace MipsStackWalk;
|
|
|
|
|
|
|
|
class CpuWidget final : public QWidget
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
CpuWidget(QWidget* parent, DebugInterface& cpu);
|
|
|
|
~CpuWidget();
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
void paintEvent(QPaintEvent* event);
|
|
|
|
|
|
|
|
void onStepInto();
|
|
|
|
void onStepOver();
|
|
|
|
void onStepOut();
|
|
|
|
|
|
|
|
void onVMPaused();
|
|
|
|
|
|
|
|
void updateBreakpoints();
|
2023-01-03 05:27:05 +00:00
|
|
|
void onBPListDoubleClicked(const QModelIndex& index);
|
2022-12-24 06:51:44 +00:00
|
|
|
void onBPListContextMenu(QPoint pos);
|
2024-04-07 21:21:00 +00:00
|
|
|
void onGotoInMemory(u32 address);
|
2022-12-24 06:51:44 +00:00
|
|
|
|
|
|
|
void contextBPListCopy();
|
|
|
|
void contextBPListDelete();
|
|
|
|
void contextBPListNew();
|
|
|
|
void contextBPListEdit();
|
2023-10-09 22:27:24 +00:00
|
|
|
void contextBPListPasteCSV();
|
2022-12-24 06:51:44 +00:00
|
|
|
|
2023-12-31 02:05:16 +00:00
|
|
|
void onSavedAddressesListContextMenu(QPoint pos);
|
|
|
|
void contextSavedAddressesListPasteCSV();
|
|
|
|
void contextSavedAddressesListNew();
|
|
|
|
void addAddressToSavedAddressesList(u32 address);
|
|
|
|
|
2022-12-24 06:51:44 +00:00
|
|
|
void updateThreads();
|
2023-01-04 07:11:28 +00:00
|
|
|
void onThreadListDoubleClick(const QModelIndex& index);
|
2022-12-24 06:51:44 +00:00
|
|
|
void onThreadListContextMenu(QPoint pos);
|
|
|
|
|
|
|
|
void updateStackFrames();
|
|
|
|
void onStackListContextMenu(QPoint pos);
|
2023-01-07 02:35:57 +00:00
|
|
|
void onStackListDoubleClick(const QModelIndex& index);
|
2022-12-24 06:51:44 +00:00
|
|
|
|
2024-02-25 18:33:33 +00:00
|
|
|
void refreshDebugger();
|
2024-04-07 20:48:28 +00:00
|
|
|
void reloadCPUWidgets();
|
2022-12-24 06:51:44 +00:00
|
|
|
|
2024-01-19 01:15:40 +00:00
|
|
|
void saveBreakpointsToDebuggerSettings();
|
|
|
|
void saveSavedAddressesToDebuggerSettings();
|
|
|
|
|
2022-12-24 06:51:44 +00:00
|
|
|
private:
|
2024-08-26 20:57:31 +00:00
|
|
|
void setupSymbolTrees();
|
|
|
|
|
2022-12-24 06:51:44 +00:00
|
|
|
std::vector<QTableWidget*> m_registerTableViews;
|
|
|
|
|
|
|
|
QMenu* m_stacklistContextMenu = 0;
|
|
|
|
QMenu* m_funclistContextMenu = 0;
|
2023-10-26 22:26:16 +00:00
|
|
|
QMenu* m_moduleTreeContextMenu = 0;
|
2024-02-25 18:33:33 +00:00
|
|
|
QTimer m_refreshDebuggerTimer;
|
2022-12-24 06:51:44 +00:00
|
|
|
|
|
|
|
Ui::CpuWidget m_ui;
|
|
|
|
|
|
|
|
DebugInterface& m_cpu;
|
|
|
|
|
2023-01-03 05:27:05 +00:00
|
|
|
BreakpointModel m_bpModel;
|
2023-01-04 07:11:28 +00:00
|
|
|
ThreadModel m_threadModel;
|
2023-10-09 22:11:28 +00:00
|
|
|
QSortFilterProxyModel m_threadProxyModel;
|
2023-01-07 02:35:57 +00:00
|
|
|
StackModel m_stackModel;
|
2023-12-31 02:05:16 +00:00
|
|
|
SavedAddressesModel m_savedAddressesModel;
|
2024-08-26 20:57:31 +00:00
|
|
|
|
|
|
|
FunctionTreeWidget* m_function_tree = nullptr;
|
|
|
|
GlobalVariableTreeWidget* m_global_variable_tree = nullptr;
|
|
|
|
LocalVariableTreeWidget* m_local_variable_tree = nullptr;
|
|
|
|
ParameterVariableTreeWidget* m_parameter_variable_tree = nullptr;
|
2022-12-24 06:51:44 +00:00
|
|
|
};
|