Commit c7ea05fff71e6979f5aaa7430c3cf15b9d7466ed

  • avatar
  • con <qtc-committer @no…a.com> (Committer)
  • Thu Nov 19 17:35:32 GMT 2009
  • avatar
  • hjk <qtc-committer @no…a.com> (Author)
  • Thu Nov 19 08:51:21 UTC 2009
debugger: prevent crash when trying to view memory if bin editor is
unavailable
(cherry picked from commit 4461ec2ef57e16a3ba69ec0e9ee919a8b1d6c4f3)
src/plugins/debugger/debuggeragents.cpp
(17 / 7)
  
4444#include <utils/qtcassert.h>
4545
4646#include <QtCore/QDebug>
47
48#include <QtGui/QMessageBox>
4749#include <QtGui/QPlainTextEdit>
4850#include <QtGui/QTextCursor>
4951#include <QtGui/QSyntaxHighlighter>
7070*/
7171
7272MemoryViewAgent::MemoryViewAgent(DebuggerManager *manager, quint64 addr)
73 : QObject(manager), m_engine(manager->currentEngine())
73 : QObject(manager), m_engine(manager->currentEngine()), m_manager(manager)
7474{
7575 init(addr);
7676}
7777
7878MemoryViewAgent::MemoryViewAgent(DebuggerManager *manager, const QString &addr)
79 : QObject(manager), m_engine(manager->currentEngine())
79 : QObject(manager), m_engine(manager->currentEngine()), m_manager(manager)
8080{
8181 bool ok = true;
8282 init(addr.toULongLong(&ok, 0));
9696 m_editor = editorManager->openEditorWithContents(
9797 Core::Constants::K_DEFAULT_BINARY_EDITOR,
9898 &titlePattern);
99 connect(m_editor->widget(), SIGNAL(lazyDataRequested(quint64,bool)),
100 this, SLOT(fetchLazyData(quint64,bool)));
101 editorManager->activateEditor(m_editor);
102 QMetaObject::invokeMethod(m_editor->widget(), "setLazyData",
103 Q_ARG(quint64, addr), Q_ARG(int, 1024 * 1024), Q_ARG(int, BinBlockSize));
99 if (m_editor) {
100 connect(m_editor->widget(), SIGNAL(lazyDataRequested(quint64,bool)),
101 this, SLOT(fetchLazyData(quint64,bool)));
102 editorManager->activateEditor(m_editor);
103 QMetaObject::invokeMethod(m_editor->widget(), "setLazyData",
104 Q_ARG(quint64, addr), Q_ARG(int, 1024 * 1024), Q_ARG(int, BinBlockSize));
105 } else {
106 m_manager->showMessageBox(QMessageBox::Warning,
107 tr("No memory viewer available"),
108 tr("The memory contents cannot be shown as no viewer plugin not "
109 "the BinEditor plugin could be loaded."));
110 deleteLater();
111 }
104112}
105113
106114void MemoryViewAgent::fetchLazyData(quint64 block, bool sync)
src/plugins/debugger/debuggeragents.h
(1 / 0)
  
7070
7171 QPointer<IDebuggerEngine> m_engine;
7272 QPointer<Core::IEditor> m_editor;
73 QPointer<DebuggerManager> m_manager;
7374};
7475
7576

Comments

Add a new comment:

Login or create an account to post a comment

Add your comment