dolphin/Source/Core/DolphinQt/Debugger/CodeWidget.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

87 lines
1.9 KiB
C
Raw Normal View History

2018-02-14 22:25:01 +00:00
// Copyright 2018 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
2018-02-14 22:25:01 +00:00
#pragma once
#include <QDockWidget>
#include <QString>
2018-04-09 13:31:20 +00:00
#include "Common/CommonTypes.h"
#include "DolphinQt/Debugger/CodeDiffDialog.h"
2018-07-06 22:40:15 +00:00
#include "DolphinQt/Debugger/CodeViewWidget.h"
2018-04-09 13:31:20 +00:00
2018-02-14 22:25:01 +00:00
class QCloseEvent;
class QLineEdit;
class QShowEvent;
2018-02-14 22:25:01 +00:00
class QSplitter;
class QListWidget;
class QPushButton;
2018-02-14 22:25:01 +00:00
class QTableWidget;
namespace Common
{
2018-02-14 22:25:01 +00:00
struct Symbol;
}
2018-02-14 22:25:01 +00:00
class CodeWidget : public QDockWidget
{
Q_OBJECT
public:
explicit CodeWidget(QWidget* parent = nullptr);
~CodeWidget();
void Step();
void StepOver();
void StepOut();
void Skip();
void ShowPC();
void SetPC();
void OnDiff();
2018-02-14 22:25:01 +00:00
void ToggleBreakpoint();
void AddBreakpoint();
void SetAddress(u32 address, CodeViewWidget::SetAddressUpdate update);
2018-02-14 22:25:01 +00:00
2018-03-16 11:39:53 +00:00
void Update();
void UpdateSymbols();
2018-02-14 22:25:01 +00:00
signals:
void BreakpointsChanged();
2018-04-09 13:31:20 +00:00
void RequestPPCComparison(u32 addr);
void ShowMemory(u32 address);
2018-02-14 22:25:01 +00:00
private:
void CreateWidgets();
void ConnectWidgets();
void UpdateCallstack();
void UpdateFunctionCalls(const Common::Symbol* symbol);
void UpdateFunctionCallers(const Common::Symbol* symbol);
2018-02-14 22:25:01 +00:00
void OnSearchAddress();
void OnSearchSymbols();
void OnSelectSymbol();
void OnSelectCallstack();
void OnSelectFunctionCallers();
void OnSelectFunctionCalls();
void closeEvent(QCloseEvent*) override;
void showEvent(QShowEvent* event) override;
2018-02-14 22:25:01 +00:00
CodeDiffDialog* m_diff_dialog = nullptr;
2018-02-14 22:25:01 +00:00
QLineEdit* m_search_address;
QPushButton* m_code_diff;
2018-02-14 22:25:01 +00:00
QLineEdit* m_search_callstack;
2018-02-14 22:25:01 +00:00
QListWidget* m_callstack_list;
QLineEdit* m_search_symbols;
2018-02-14 22:25:01 +00:00
QListWidget* m_symbols_list;
QLineEdit* m_search_calls;
2018-02-14 22:25:01 +00:00
QListWidget* m_function_calls_list;
QLineEdit* m_search_callers;
2018-02-14 22:25:01 +00:00
QListWidget* m_function_callers_list;
CodeViewWidget* m_code_view;
QSplitter* m_box_splitter;
QSplitter* m_code_splitter;
QString m_symbol_filter;
};