diff options
author | Friedemann Kleint <[email protected]> | 2011-05-04 11:58:54 +0200 |
---|---|---|
committer | Friedemann Kleint <[email protected]> | 2011-05-04 11:59:30 +0200 |
commit | cfcfb82ce10aefb48ae38b2549cf39dd5e253b7c (patch) | |
tree | 028432c24f748d8d1a4758871c4f6560db177234 /src/plugins/debugger/stackwindow.cpp | |
parent | a9662aef0fb6ff3125a2deebd32e4bca2ebb3ecb (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.cpp | 21 |
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(); |