summaryrefslogtreecommitdiffstats
path: root/src/citra_qt/debugger
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2017-05-07 23:44:43 +0200
committerYuri Kunde Schlesner <yuriks@yuriks.net>2017-05-08 00:32:47 +0200
commit4af2a1a3d74eb5e77b59e4557c50e230d453d7d9 (patch)
treeeeecf3ec67b666805db0aaa9e91af407c7b29773 /src/citra_qt/debugger
parentcitra-qt: Remove disassembler widget (diff)
downloadyuzu-4af2a1a3d74eb5e77b59e4557c50e230d453d7d9.tar
yuzu-4af2a1a3d74eb5e77b59e4557c50e230d453d7d9.tar.gz
yuzu-4af2a1a3d74eb5e77b59e4557c50e230d453d7d9.tar.bz2
yuzu-4af2a1a3d74eb5e77b59e4557c50e230d453d7d9.tar.lz
yuzu-4af2a1a3d74eb5e77b59e4557c50e230d453d7d9.tar.xz
yuzu-4af2a1a3d74eb5e77b59e4557c50e230d453d7d9.tar.zst
yuzu-4af2a1a3d74eb5e77b59e4557c50e230d453d7d9.zip
Diffstat (limited to 'src/citra_qt/debugger')
-rw-r--r--src/citra_qt/debugger/callstack.cpp85
-rw-r--r--src/citra_qt/debugger/callstack.h28
-rw-r--r--src/citra_qt/debugger/callstack.ui39
3 files changed, 0 insertions, 152 deletions
diff --git a/src/citra_qt/debugger/callstack.cpp b/src/citra_qt/debugger/callstack.cpp
deleted file mode 100644
index 08d2e7a22..000000000
--- a/src/citra_qt/debugger/callstack.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2014 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#include <QStandardItemModel>
-#include "citra_qt/debugger/callstack.h"
-#include "common/common_types.h"
-#include "common/symbols.h"
-#include "core/arm/arm_interface.h"
-#include "core/arm/disassembler/arm_disasm.h"
-#include "core/core.h"
-#include "core/memory.h"
-
-CallstackWidget::CallstackWidget(QWidget* parent) : QDockWidget(parent) {
- ui.setupUi(this);
-
- callstack_model = new QStandardItemModel(this);
- callstack_model->setColumnCount(4);
- callstack_model->setHeaderData(0, Qt::Horizontal, "Stack Pointer");
- callstack_model->setHeaderData(2, Qt::Horizontal, "Return Address");
- callstack_model->setHeaderData(1, Qt::Horizontal, "Call Address");
- callstack_model->setHeaderData(3, Qt::Horizontal, "Function");
- ui.treeView->setModel(callstack_model);
-}
-
-void CallstackWidget::OnDebugModeEntered() {
- // Stack pointer
- const u32 sp = Core::CPU().GetReg(13);
-
- Clear();
-
- int counter = 0;
- for (u32 addr = 0x10000000; addr >= sp; addr -= 4) {
- if (!Memory::IsValidVirtualAddress(addr))
- break;
-
- const u32 ret_addr = Memory::Read32(addr);
- const u32 call_addr = ret_addr - 4; // get call address???
-
- if (!Memory::IsValidVirtualAddress(call_addr))
- break;
-
- /* TODO (mattvail) clean me, move to debugger interface */
- u32 insn = Memory::Read32(call_addr);
- if (ARM_Disasm::Decode(insn) == OP_BL) {
- std::string name;
- // ripped from disasm
- u32 i_offset = insn & 0xffffff;
- // Sign-extend the 24-bit offset
- if ((i_offset >> 23) & 1)
- i_offset |= 0xff000000;
-
- // Pre-compute the left-shift and the prefetch offset
- i_offset <<= 2;
- i_offset += 8;
- const u32 func_addr = call_addr + i_offset;
-
- callstack_model->setItem(
- counter, 0, new QStandardItem(QString("0x%1").arg(addr, 8, 16, QLatin1Char('0'))));
- callstack_model->setItem(counter, 1, new QStandardItem(QString("0x%1").arg(
- ret_addr, 8, 16, QLatin1Char('0'))));
- callstack_model->setItem(counter, 2, new QStandardItem(QString("0x%1").arg(
- call_addr, 8, 16, QLatin1Char('0'))));
-
- name = Symbols::HasSymbol(func_addr) ? Symbols::GetSymbol(func_addr).name : "unknown";
- callstack_model->setItem(
- counter, 3, new QStandardItem(
- QString("%1_%2")
- .arg(QString::fromStdString(name))
- .arg(QString("0x%1").arg(func_addr, 8, 16, QLatin1Char('0')))));
-
- counter++;
- }
- }
-}
-
-void CallstackWidget::OnDebugModeLeft() {}
-
-void CallstackWidget::Clear() {
- for (int row = 0; row < callstack_model->rowCount(); row++) {
- for (int column = 0; column < callstack_model->columnCount(); column++) {
- callstack_model->setItem(row, column, new QStandardItem());
- }
- }
-}
diff --git a/src/citra_qt/debugger/callstack.h b/src/citra_qt/debugger/callstack.h
deleted file mode 100644
index f04ab9c7e..000000000
--- a/src/citra_qt/debugger/callstack.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2014 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <QDockWidget>
-#include "ui_callstack.h"
-
-class QStandardItemModel;
-
-class CallstackWidget : public QDockWidget {
- Q_OBJECT
-
-public:
- explicit CallstackWidget(QWidget* parent = nullptr);
-
-public slots:
- void OnDebugModeEntered();
- void OnDebugModeLeft();
-
-private:
- Ui::CallStack ui;
- QStandardItemModel* callstack_model;
-
- /// Clears the callstack widget while keeping the column widths the same
- void Clear();
-};
diff --git a/src/citra_qt/debugger/callstack.ui b/src/citra_qt/debugger/callstack.ui
deleted file mode 100644
index 248ea3dd7..000000000
--- a/src/citra_qt/debugger/callstack.ui
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>CallStack</class>
- <widget class="QDockWidget" name="CallStack">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Call Stack</string>
- </property>
- <widget class="QWidget" name="dockWidgetContents">
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QTreeView" name="treeView">
- <property name="editTriggers">
- <set>QAbstractItemView::NoEditTriggers</set>
- </property>
- <property name="alternatingRowColors">
- <bool>true</bool>
- </property>
- <property name="rootIsDecorated">
- <bool>false</bool>
- </property>
- <property name="itemsExpandable">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- <resources/>
- <connections/>
-</ui>