#include "cdboptions.h"
#include "cdbexceptionutils.h"
#include "cdbsymbolpathlisteditor.h"
-#include "debuggeragents.h"
-#include "debuggercore.h"
#include "dbgwinutils.h"
+#include "debuggercore.h"
+#include "disassemblerviewagent.h"
+#include "memoryviewagent.h"
#include "debuggeractions.h"
#include "breakhandler.h"
#include "debuggeractions.h"
#include "debuggercore.h"
#include "registerhandler.h"
-#include "debuggeragents.h"
+#include "disassembleragent.h"
+#include "memoryagent.h"
#include "debuggertooltip.h"
#include "cdbparsehelpers.h"
#include "watchutils.h"
consolewindow.h \
debugger_global.h \
debuggeractions.h \
- debuggeragents.h \
debuggercore.h \
debuggerconstants.h \
debuggerdialogs.h \
debuggerstreamops.h \
debuggerstringutils.h \
debuggertooltip.h \
+ disassembleragent.h \
disassemblerlines.h \
logwindow.h \
+ memoryagent.h \
moduleshandler.h \
moduleswindow.h \
name_demangler.h \
breakwindow.cpp \
consolewindow.cpp \
debuggeractions.cpp \
- debuggeragents.cpp \
debuggerdialogs.cpp \
debuggerengine.cpp \
debuggermainwindow.cpp \
debuggerrunner.cpp \
debuggerstreamops.cpp \
debuggertooltip.cpp \
+ disassembleragent.cpp \
disassemblerlines.cpp \
logwindow.cpp \
+ memoryagent.cpp \
moduleshandler.cpp \
moduleswindow.cpp \
name_demangler.cpp \
#include "debuggerengine.h"
#include "debuggeractions.h"
-#include "debuggeragents.h"
#include "debuggercore.h"
#include "debuggerplugin.h"
#include "debuggerrunner.h"
#include "debuggerstringutils.h"
#include "debuggertooltip.h"
+#include "memoryagent.h"
+#include "disassembleragent.h"
#include "breakhandler.h"
#include "moduleshandler.h"
#include "registerhandler.h"
&& !p.fileName.endsWith(QLatin1String(".js"), Qt::CaseInsensitive);
}
+void DebuggerEngine::openMemoryView(quint64 address)
+{
+ (void) new MemoryViewAgent(this, address);
+}
+
+void DebuggerEngine::openDisassemblerView(const StackFrame &frame)
+{
+ DisassemblerViewAgent *agent = new DisassemblerViewAgent(this);
+ agent->setFrame(frame, true, false);
+}
+
} // namespace Debugger
#include "debuggerengine.moc"
void startDebugger(DebuggerRunControl *runControl);
virtual void watchPoint(const QPoint &);
+ virtual void openMemoryView(quint64 addr);
virtual void fetchMemory(Internal::MemoryViewAgent *, QObject *,
quint64 addr, quint64 length);
+ virtual void openDisassemblerView(const Internal::StackFrame &frame);
virtual void fetchDisassembler(Internal::DisassemblerViewAgent *);
virtual void activateFrame(int index);
#include "debuggerplugin.h"
#include "debuggeractions.h"
-#include "debuggeragents.h"
#include "debuggerconstants.h"
#include "debuggercore.h"
#include "debuggerdialogs.h"
#include "breakhandler.h"
#include "breakwindow.h"
#include "consolewindow.h"
+#include "disassembleragent.h"
#include "logwindow.h"
#include "moduleswindow.h"
#include "registerwindow.h"
{
AddressDialog dialog;
if (dialog.exec() == QDialog::Accepted)
- (void) new MemoryViewAgent(currentEngine(), dialog.address());
+ currentEngine()->openMemoryView(dialog.address());
}
void DebuggerPluginPrivate::coreShutdown()
**
**************************************************************************/
-#include "debuggeragents.h"
+#include "disassembleragent.h"
#include "breakhandler.h"
#include "debuggerengine.h"
#include "stackframe.h"
#include <coreplugin/coreconstants.h>
-#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditor.h>
-#include <coreplugin/mimedatabase.h>
#include <coreplugin/icore.h>
+#include <coreplugin/mimedatabase.h>
#include <texteditor/basetextdocument.h>
#include <texteditor/basetexteditor.h>
#include <utils/qtcassert.h>
-#include <QtCore/QDebug>
-#include <QtCore/QMetaObject>
-#include <QtCore/QTimer>
-
-#include <QtGui/QMessageBox>
-#include <QtGui/QPlainTextEdit>
#include <QtGui/QTextBlock>
-#include <QtGui/QTextCursor>
#include <QtGui/QIcon>
-#include <limits.h>
using namespace Core;
///////////////////////////////////////////////////////////////////////
//
-// MemoryViewAgent
-//
-///////////////////////////////////////////////////////////////////////
-
-/*!
- \class MemoryViewAgent
-
- Objects form this class are created in response to user actions in
- the Gui for showing raw memory from the inferior. After creation
- it handles communication between the engine and the bineditor.
-*/
-
-namespace { const int DataRange = 1024 * 1024; }
-
-MemoryViewAgent::MemoryViewAgent(Debugger::DebuggerEngine *engine, quint64 addr)
- : QObject(engine), m_engine(engine)
-{
- QTC_ASSERT(engine, /**/);
- createBinEditor(addr);
-}
-
-MemoryViewAgent::MemoryViewAgent(Debugger::DebuggerEngine *engine, const QString &addr)
- : QObject(engine), m_engine(engine)
-{
- QTC_ASSERT(engine, /**/);
- bool ok = true;
- createBinEditor(addr.toULongLong(&ok, 0));
- //qDebug() << " ADDRESS: " << addr << addr.toUInt(&ok, 0);
-}
-
-MemoryViewAgent::~MemoryViewAgent()
-{
- EditorManager *editorManager = EditorManager::instance();
- QList<IEditor *> editors;
- foreach (QPointer<IEditor> editor, m_editors)
- if (editor)
- editors.append(editor.data());
- editorManager->closeEditors(editors);
-}
-
-void MemoryViewAgent::createBinEditor(quint64 addr)
-{
- EditorManager *editorManager = EditorManager::instance();
- QString titlePattern = tr("Memory $");
- IEditor *editor = editorManager->openEditorWithContents(
- Core::Constants::K_DEFAULT_BINARY_EDITOR_ID,
- &titlePattern);
- if (editor) {
- connect(editor->widget(),
- SIGNAL(lazyDataRequested(Core::IEditor *, quint64,bool)),
- SLOT(fetchLazyData(Core::IEditor *, quint64,bool)));
- connect(editor->widget(),
- SIGNAL(newWindowRequested(quint64)),
- SLOT(createBinEditor(quint64)));
- connect(editor->widget(),
- SIGNAL(newRangeRequested(Core::IEditor *, quint64)),
- SLOT(provideNewRange(Core::IEditor*,quint64)));
- connect(editor->widget(),
- SIGNAL(startOfFileRequested(Core::IEditor *)),
- SLOT(handleStartOfFileRequested(Core::IEditor*)));
- connect(editor->widget(),
- SIGNAL(endOfFileRequested(Core::IEditor *)),
- SLOT(handleEndOfFileRequested(Core::IEditor*)));
- m_editors << editor;
- editorManager->activateEditor(editor);
- QMetaObject::invokeMethod(editor->widget(), "setNewWindowRequestAllowed");
- QMetaObject::invokeMethod(editor->widget(), "setLazyData",
- Q_ARG(quint64, addr), Q_ARG(int, DataRange), Q_ARG(int, BinBlockSize));
- } else {
- showMessageBox(QMessageBox::Warning,
- tr("No memory viewer available"),
- tr("The memory contents cannot be shown as no viewer plugin "
- "for binary data has been loaded."));
- deleteLater();
- }
-}
-
-void MemoryViewAgent::fetchLazyData(IEditor *editor, quint64 block, bool sync)
-{
- Q_UNUSED(sync); // FIXME: needed support for incremental searching
- m_engine->fetchMemory(this, editor, BinBlockSize * block, BinBlockSize);
-}
-
-void MemoryViewAgent::addLazyData(QObject *editorToken, quint64 addr,
- const QByteArray &ba)
-{
- IEditor *editor = qobject_cast<IEditor *>(editorToken);
- if (editor && editor->widget()) {
- Core::EditorManager::instance()->activateEditor(editor);
- QMetaObject::invokeMethod(editor->widget(), "addLazyData",
- Q_ARG(quint64, addr / BinBlockSize), Q_ARG(QByteArray, ba));
- }
-}
-
-void MemoryViewAgent::provideNewRange(IEditor *editor, quint64 address)
-{
- QMetaObject::invokeMethod(editor->widget(), "setLazyData",
- Q_ARG(quint64, address), Q_ARG(int, DataRange),
- Q_ARG(int, BinBlockSize));
-}
-
-// Since we are not dealing with files, we take these signals to mean
-// "move to start/end of range". This seems to make more sense than
-// jumping to the start or end of the address space, respectively.
-void MemoryViewAgent::handleStartOfFileRequested(IEditor *editor)
-{
- QMetaObject::invokeMethod(editor->widget(),
- "setCursorPosition", Q_ARG(int, 0));
-}
-
-void MemoryViewAgent::handleEndOfFileRequested(IEditor *editor)
-{
- QMetaObject::invokeMethod(editor->widget(),
- "setCursorPosition", Q_ARG(int, DataRange - 1));
-}
-
-
-
-///////////////////////////////////////////////////////////////////////
-//
// DisassemblerViewAgent
//
///////////////////////////////////////////////////////////////////////
**
**************************************************************************/
-#ifndef DEBUGGER_AGENTS_H
-#define DEBUGGER_AGENTS_H
+#ifndef DEBUGGER_DISASSEMBLERAGENT_H
+#define DEBUGGER_DISASSEMBLERAGENT_H
+
+#include "disassemblerlines.h"
#include <QtCore/QObject>
-#include <QtCore/QHash>
#include <QtCore/QPointer>
-#include <QtCore/QVector>
-
-#include "disassemblerlines.h"
namespace Core {
class IEditor;
class DisassemblerViewAgent;
class DisassemblerViewAgentPrivate;
-class MemoryViewAgent : public QObject
-{
- Q_OBJECT
-
-public:
- // Called from Gui
- explicit MemoryViewAgent(Debugger::DebuggerEngine *engine, quint64 startaddr);
- explicit MemoryViewAgent(Debugger::DebuggerEngine *engine, const QString &startaddr);
- ~MemoryViewAgent();
-
- enum { BinBlockSize = 1024 };
-
-public slots:
- // Called from Engine
- void addLazyData(QObject *editorToken, quint64 addr, const QByteArray &data);
-
-private:
- Q_SLOT void createBinEditor(quint64 startAddr);
- Q_SLOT void fetchLazyData(Core::IEditor *, quint64 block, bool sync);
- Q_SLOT void provideNewRange(Core::IEditor *editor, quint64 address);
- Q_SLOT void handleStartOfFileRequested(Core::IEditor *editor);
- Q_SLOT void handleEndOfFileRequested(Core::IEditor *editor);
-
- QList<QPointer<Core::IEditor> > m_editors;
- QPointer<Debugger::DebuggerEngine> m_engine;
-};
-
class DisassemblerViewAgent : public QObject
{
Q_OBJECT
Q_PROPERTY(QString mimeType READ mimeType WRITE setMimeType)
public:
// Called from Gui
- explicit DisassemblerViewAgent(Debugger::DebuggerEngine *engine);
+ explicit DisassemblerViewAgent(DebuggerEngine *engine);
~DisassemblerViewAgent();
void setFrame(const StackFrame &frame, bool tryMixed, bool setMarker);
// Return address of an assembly line "0x0dfd bla"
static quint64 addressFromDisassemblyLine(const QString &data);
+
private:
DisassemblerViewAgentPrivate *d;
};
} // namespace Internal
} // namespace Debugger
-#endif // DEBUGGER_WATCHWINDOW_H
+#endif // DEBUGGER_DISASSEMBLERAGENT_H
#include "gdbengine.h"
-#include "gdboptionspage.h"
-#include "debuggercore.h"
-#include "debuggerplugin.h"
-#include "debuggerrunner.h"
-
#include "attachgdbadapter.h"
#include "coregdbadapter.h"
#include "localplaingdbadapter.h"
#include "trkgdbadapter.h"
#include "tcftrkgdbadapter.h"
-#include "watchutils.h"
#include "debuggeractions.h"
-#include "debuggeragents.h"
#include "debuggerconstants.h"
-#include "debuggertooltip.h"
+#include "debuggercore.h"
+#include "debuggerplugin.h"
+#include "debuggerrunner.h"
#include "debuggerstringutils.h"
+#include "debuggertooltip.h"
+#include "disassembleragent.h"
#include "gdbmi.h"
+#include "gdboptionspage.h"
+#include "memoryagent.h"
+#include "watchutils.h"
#include "breakhandler.h"
#include "moduleshandler.h"
#include "threadshandler.h"
#include "watchhandler.h"
-#include "sourcefileswindow.h"
-
-#include "debuggerdialogs.h"
#include "logwindow.h"
-#include <utils/qtcassert.h>
-#include <utils/fancymainwindow.h>
-#include <texteditor/itexteditor.h>
-#include <projectexplorer/toolchain.h>
#include <coreplugin/icore.h>
+#include <projectexplorer/toolchain.h>
+#include <texteditor/itexteditor.h>
+#include <utils/qtcassert.h>
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
**************************************************************************/
#include "ipcenginehost.h"
+
#include "ipcengineguest.h"
#include "breakhandler.h"
#include "breakpoint.h"
#include "watchhandler.h"
#include "watchutils.h"
#include "threadshandler.h"
-#include "debuggeragents.h"
+#include "disassembleragent.h"
+#include "memoryagent.h"
#include "debuggerstreamops.h"
#include "debuggercore.h"
+#include <utils/qtcassert.h>
+
#include <QSysInfo>
#include <QDebug>
#include <QFileInfo>
#include <QTimer>
-#include <utils/qtcassert.h>
#include <QLocalSocket>
#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
#include "debuggerdialogs.h"
#include "debuggerplugin.h"
#include "debuggerstringutils.h"
-#include "coreplugin/icore.h"
#include "breakhandler.h"
#include "breakpoint.h"
#include "watchhandler.h"
#include "watchutils.h"
#include "threadshandler.h"
-#include "debuggeragents.h"
+#include "disassembleragent.h"
+#include "memoryagent.h"
+#include <coreplugin/icore.h>
#include <utils/qtcassert.h>
+
#include <QtCore/QDebug>
#include <QtCore/QProcess>
#include <QtCore/QFileInfo>
--- /dev/null
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#include "memoryagent.h"
+
+#include "debuggerengine.h"
+#include "debuggercore.h"
+
+#include <coreplugin/coreconstants.h>
+#include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/editormanager/ieditor.h>
+#include <coreplugin/icore.h>
+
+#include <utils/qtcassert.h>
+
+#include <QtGui/QMessageBox>
+
+using namespace Core;
+
+namespace Debugger {
+namespace Internal {
+
+///////////////////////////////////////////////////////////////////////
+//
+// MemoryViewAgent
+//
+///////////////////////////////////////////////////////////////////////
+
+/*!
+ \class MemoryViewAgent
+
+ Objects form this class are created in response to user actions in
+ the Gui for showing raw memory from the inferior. After creation
+ it handles communication between the engine and the bineditor.
+*/
+
+namespace { const int DataRange = 1024 * 1024; }
+
+MemoryViewAgent::MemoryViewAgent(Debugger::DebuggerEngine *engine, quint64 addr)
+ : QObject(engine), m_engine(engine)
+{
+ QTC_ASSERT(engine, /**/);
+ createBinEditor(addr);
+}
+
+MemoryViewAgent::~MemoryViewAgent()
+{
+ EditorManager *editorManager = EditorManager::instance();
+ QList<IEditor *> editors;
+ foreach (QPointer<IEditor> editor, m_editors)
+ if (editor)
+ editors.append(editor.data());
+ editorManager->closeEditors(editors);
+}
+
+void MemoryViewAgent::createBinEditor(quint64 addr)
+{
+ EditorManager *editorManager = EditorManager::instance();
+ QString titlePattern = tr("Memory $");
+ IEditor *editor = editorManager->openEditorWithContents(
+ Core::Constants::K_DEFAULT_BINARY_EDITOR_ID,
+ &titlePattern);
+ if (editor) {
+ connect(editor->widget(),
+ SIGNAL(lazyDataRequested(Core::IEditor *, quint64,bool)),
+ SLOT(fetchLazyData(Core::IEditor *, quint64,bool)));
+ connect(editor->widget(),
+ SIGNAL(newWindowRequested(quint64)),
+ SLOT(createBinEditor(quint64)));
+ connect(editor->widget(),
+ SIGNAL(newRangeRequested(Core::IEditor *, quint64)),
+ SLOT(provideNewRange(Core::IEditor*,quint64)));
+ connect(editor->widget(),
+ SIGNAL(startOfFileRequested(Core::IEditor *)),
+ SLOT(handleStartOfFileRequested(Core::IEditor*)));
+ connect(editor->widget(),
+ SIGNAL(endOfFileRequested(Core::IEditor *)),
+ SLOT(handleEndOfFileRequested(Core::IEditor*)));
+ m_editors << editor;
+ editorManager->activateEditor(editor);
+ QMetaObject::invokeMethod(editor->widget(), "setNewWindowRequestAllowed");
+ QMetaObject::invokeMethod(editor->widget(), "setLazyData",
+ Q_ARG(quint64, addr), Q_ARG(int, DataRange), Q_ARG(int, BinBlockSize));
+ } else {
+ showMessageBox(QMessageBox::Warning,
+ tr("No memory viewer available"),
+ tr("The memory contents cannot be shown as no viewer plugin "
+ "for binary data has been loaded."));
+ deleteLater();
+ }
+}
+
+void MemoryViewAgent::fetchLazyData(IEditor *editor, quint64 block, bool sync)
+{
+ Q_UNUSED(sync); // FIXME: needed support for incremental searching
+ m_engine->fetchMemory(this, editor, BinBlockSize * block, BinBlockSize);
+}
+
+void MemoryViewAgent::addLazyData(QObject *editorToken, quint64 addr,
+ const QByteArray &ba)
+{
+ IEditor *editor = qobject_cast<IEditor *>(editorToken);
+ if (editor && editor->widget()) {
+ Core::EditorManager::instance()->activateEditor(editor);
+ QMetaObject::invokeMethod(editor->widget(), "addLazyData",
+ Q_ARG(quint64, addr / BinBlockSize), Q_ARG(QByteArray, ba));
+ }
+}
+
+void MemoryViewAgent::provideNewRange(IEditor *editor, quint64 address)
+{
+ QMetaObject::invokeMethod(editor->widget(), "setLazyData",
+ Q_ARG(quint64, address), Q_ARG(int, DataRange),
+ Q_ARG(int, BinBlockSize));
+}
+
+// Since we are not dealing with files, we take these signals to mean
+// "move to start/end of range". This seems to make more sense than
+// jumping to the start or end of the address space, respectively.
+void MemoryViewAgent::handleStartOfFileRequested(IEditor *editor)
+{
+ QMetaObject::invokeMethod(editor->widget(),
+ "setCursorPosition", Q_ARG(int, 0));
+}
+
+void MemoryViewAgent::handleEndOfFileRequested(IEditor *editor)
+{
+ QMetaObject::invokeMethod(editor->widget(),
+ "setCursorPosition", Q_ARG(int, DataRange - 1));
+}
+
+} // namespace Internal
+} // namespace Debugger
--- /dev/null
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#ifndef DEBUGGER_MEMORYAGENT_H
+#define DEBUGGER_MEMORYAGENT_H
+
+#include <QtCore/QObject>
+#include <QtCore/QPointer>
+
+namespace Core {
+class IEditor;
+}
+
+namespace Debugger {
+
+class DebuggerEngine;
+
+namespace Internal {
+
+class MemoryViewAgent : public QObject
+{
+ Q_OBJECT
+
+public:
+ // Called from Gui
+ explicit MemoryViewAgent(DebuggerEngine *engine, quint64 startaddr);
+ ~MemoryViewAgent();
+
+ enum { BinBlockSize = 1024 };
+
+public slots:
+ // Called from Engine
+ void addLazyData(QObject *editorToken, quint64 addr, const QByteArray &data);
+
+private:
+ Q_SLOT void createBinEditor(quint64 startAddr);
+ Q_SLOT void fetchLazyData(Core::IEditor *, quint64 block, bool sync);
+ Q_SLOT void provideNewRange(Core::IEditor *editor, quint64 address);
+ Q_SLOT void handleStartOfFileRequested(Core::IEditor *editor);
+ Q_SLOT void handleEndOfFileRequested(Core::IEditor *editor);
+
+ QList<QPointer<Core::IEditor> > m_editors;
+ QPointer<DebuggerEngine> m_engine;
+};
+
+} // namespace Internal
+} // namespace Debugger
+
+#endif // DEBUGGER_MEMORYAGENT_H
#include "registerwindow.h"
#include "debuggeractions.h"
-#include "debuggeragents.h"
#include "debuggerconstants.h"
#include "debuggercore.h"
#include "debuggerengine.h"
else if (act == actReload)
engine->reloadRegisters();
else if (act == actShowMemory)
- (void) new MemoryViewAgent(engine, address);
+ engine->openMemoryView(address.toULongLong(0, 0));
else if (act == act16)
handler->setNumberBase(16);
else if (act == act10)
#include "stackhandler.h"
#include "debuggeractions.h"
-#include "debuggeragents.h"
#include "debuggercore.h"
#include "debuggerengine.h"
#include "stackhandler.h"
#include "debuggeractions.h"
-#include "debuggeragents.h"
#include "debuggerconstants.h"
#include "debuggercore.h"
#include "debuggerengine.h"
else if (act == actAlwaysAdjust)
setAlwaysResizeColumnsToContents(!m_alwaysResizeColumnsToContents);
else if (act == actShowMemory)
- (void) new MemoryViewAgent(currentEngine(), address);
- else if (act == actShowDisassembler) {
- DisassemblerViewAgent *agent = new DisassemblerViewAgent(engine);
- agent->setFrame(frame, true, false);
- }
+ engine->openMemoryView(address);
+ else if (act == actShowDisassembler)
+ engine->openDisassemblerView(frame);
}
void StackWindow::copyContentsToClipboard()
#include "breakhandler.h"
#include "debuggeractions.h"
-#include "debuggeragents.h"
#include "debuggercore.h"
#include "debuggerengine.h"
#include "watchutils.h"
#include "watchwindow.h"
#include "breakhandler.h"
-#include "debuggeragents.h"
#include "debuggeractions.h"
#include "debuggerconstants.h"
#include "debuggercore.h"
} else if (act == actInsertNewWatchItem) {
watchExpression(QString());
} else if (act == actOpenMemoryEditAtVariableAddress) {
- (void) new MemoryViewAgent(currentEngine(), address);
+ currentEngine()->openMemoryView(address);
} else if (act == actOpenMemoryEditAtPointerValue) {
- (void) new MemoryViewAgent(currentEngine(), pointerValue);
+ currentEngine()->openMemoryView(pointerValue);
} else if (act == actOpenMemoryEditor) {
AddressDialog dialog;
if (dialog.exec() == QDialog::Accepted)
- (void) new MemoryViewAgent(currentEngine(), dialog.address());
+ currentEngine()->openMemoryView(dialog.address());
} else if (act == actSetWatchpointAtVariableAddress) {
setWatchpoint(address);
} else if (act == actSetWatchpointAtPointerValue) {