aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/stackwindow.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <[email protected]>2011-05-04 11:58:54 +0200
committerFriedemann Kleint <[email protected]>2011-05-04 11:59:30 +0200
commitcfcfb82ce10aefb48ae38b2549cf39dd5e253b7c (patch)
tree028432c24f748d8d1a4758871c4f6560db177234 /src/plugins/debugger/stackwindow.cpp
parenta9662aef0fb6ff3125a2deebd32e4bca2ebb3ecb (diff)
Debugger: Add 'Open Disassembler...' to stack window.
Preset with stack frame address.
Diffstat (limited to 'src/plugins/debugger/stackwindow.cpp')
-rw-r--r--src/plugins/debugger/stackwindow.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/plugins/debugger/stackwindow.cpp b/src/plugins/debugger/stackwindow.cpp
index 994be4f0034..17123b4acf9 100644
--- a/src/plugins/debugger/stackwindow.cpp
+++ b/src/plugins/debugger/stackwindow.cpp
@@ -36,6 +36,7 @@
#include "debuggeractions.h"
#include "debuggercore.h"
#include "debuggerengine.h"
+#include "debuggerdialogs.h"
#include "memoryagent.h"
#include <utils/qtcassert.h>
@@ -136,13 +137,15 @@ void StackWindow::contextMenuEvent(QContextMenuEvent *ev)
actShowMemory->setEnabled(engineCapabilities & ShowMemoryCapability);
}
- QAction *actShowDisassembler = menu.addAction(QString());
+ QAction *actShowDisassemblerAt = menu.addAction(QString());
+ QAction *actShowDisassembler = menu.addAction(tr("Open Disassembler..."));
+ actShowDisassembler->setEnabled(engineCapabilities & DisassemblerCapability);
if (address == 0) {
- actShowDisassembler->setText(tr("Open Disassembler"));
- actShowDisassembler->setEnabled(false);
+ actShowDisassemblerAt->setText(tr("Open Disassembler"));
+ actShowDisassemblerAt->setEnabled(false);
} else {
- actShowDisassembler->setText(tr("Open Disassembler at 0x%1").arg(address, 0, 16));
- actShowDisassembler->setEnabled(engineCapabilities & DisassemblerCapability);
+ actShowDisassemblerAt->setText(tr("Open Disassembler at 0x%1").arg(address, 0, 16));
+ actShowDisassemblerAt->setEnabled(engineCapabilities & DisassemblerCapability);
}
QAction *actLoadSymbols = 0;
@@ -176,7 +179,13 @@ void StackWindow::contextMenuEvent(QContextMenuEvent *ev)
ml.push_back(MemoryMarkup(address, 1, QColor(Qt::blue).lighter(),
tr("Frame #%1 (%2)").arg(row).arg(frame.function)));
engine->openMemoryView(address, 0, ml, QPoint(), title);
- } else if (act == actShowDisassembler)
+ } else if (act == actShowDisassembler) {
+ AddressDialog dialog;
+ if (address)
+ dialog.setAddress(address);
+ if (dialog.exec() == QDialog::Accepted)
+ currentEngine()->openDisassemblerView(Location(dialog.address()));
+ } else if (act == actShowDisassemblerAt)
engine->openDisassemblerView(frame);
else if (act == actLoadSymbols)
engine->loadSymbolsForStack();