blob: 9a678e1c2c1ada84dca9c97843eb16efd807a78c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
// Copyright 2018 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <QDockWidget>
#include <QString>
#include "Common/CommonTypes.h"
#include "DolphinQt/Debugger/CodeViewWidget.h"
class BranchWatchDialog;
class QCloseEvent;
class QLineEdit;
class QShowEvent;
class QSplitter;
class QListWidget;
class QPushButton;
class QTableWidget;
class QToolButton;
namespace Common
{
struct Symbol;
}
namespace Core
{
class System;
}
class PPCSymbolDB;
class CodeWidget : public QDockWidget
{
Q_OBJECT
public:
explicit CodeWidget(QWidget* parent = nullptr);
~CodeWidget() override;
void Step();
void StepOver();
void StepOut();
void Skip();
void ShowPC();
void SetPC();
void OnBranchWatchDialog();
void OnSetCodeAddress(u32 address);
void ToggleBreakpoint();
void AddBreakpoint();
void SetAddress(u32 address, CodeViewWidget::SetAddressUpdate update);
void Update();
void UpdateSymbols();
void ActivateSearchAddress();
signals:
void RequestPPCComparison(u32 address, bool translate_address);
void ShowMemory(u32 address);
private:
void CreateWidgets();
void ConnectWidgets();
void UpdateCallstack();
void UpdateFunctionCalls(const Common::Symbol* symbol);
void UpdateFunctionCallers(const Common::Symbol* symbol);
void UpdateNotes();
void OnShowDemangledNamesChanged();
void OnPPCSymbolsChanged();
void OnSearchAddress();
void OnSearchSymbols();
void OnSelectSymbol();
void OnSelectNote();
void OnSelectCallstack();
void OnSelectFunctionCallers();
void OnSelectFunctionCalls();
void closeEvent(QCloseEvent*) override;
void showEvent(QShowEvent* event) override;
const std::string& GetSymbolDisplayName(const Common::Symbol* symbol) const;
Core::System& m_system;
PPCSymbolDB& m_ppc_symbol_db;
BranchWatchDialog* m_branch_watch_dialog = nullptr;
QLineEdit* m_search_address;
QToolButton* m_lock_btn;
QPushButton* m_branch_watch;
QLineEdit* m_search_callstack;
QListWidget* m_callstack_list;
QLineEdit* m_search_symbols;
QListWidget* m_symbols_list;
QListWidget* m_note_list;
QLineEdit* m_search_calls;
QListWidget* m_function_calls_list;
QLineEdit* m_search_callers;
QListWidget* m_function_callers_list;
CodeViewWidget* m_code_view;
QSplitter* m_box_splitter;
QSplitter* m_code_splitter;
QString m_symbol_filter;
};
|