Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
cfd2dbb3
Commit
cfd2dbb3
authored
Dec 08, 2010
by
hjk
Browse files
debugger: split debuggeragents.{h,cpp} int {memory,disassembler}agent.{h,cpp}
parent
d7ca39da
Changes
18
Hide whitespace changes
Inline
Side-by-side
src/plugins/debugger/cdb/cdbengine.cpp
View file @
cfd2dbb3
...
...
@@ -40,9 +40,10 @@
#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"
...
...
src/plugins/debugger/cdb2/cdbengine2.cpp
View file @
cfd2dbb3
...
...
@@ -40,7 +40,8 @@
#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"
...
...
src/plugins/debugger/debugger.pro
View file @
cfd2dbb3
...
...
@@ -23,7 +23,6 @@ HEADERS += breakhandler.h \
consolewindow
.
h
\
debugger_global
.
h
\
debuggeractions
.
h
\
debuggeragents
.
h
\
debuggercore
.
h
\
debuggerconstants
.
h
\
debuggerdialogs
.
h
\
...
...
@@ -34,8 +33,10 @@ HEADERS += breakhandler.h \
debuggerstreamops
.
h
\
debuggerstringutils
.
h
\
debuggertooltip
.
h
\
disassembleragent
.
h
\
disassemblerlines
.
h
\
logwindow
.
h
\
memoryagent
.
h
\
moduleshandler
.
h
\
moduleswindow
.
h
\
name_demangler
.
h
\
...
...
@@ -65,7 +66,6 @@ SOURCES += breakhandler.cpp \
breakwindow
.
cpp
\
consolewindow
.
cpp
\
debuggeractions
.
cpp
\
debuggeragents
.
cpp
\
debuggerdialogs
.
cpp
\
debuggerengine
.
cpp
\
debuggermainwindow
.
cpp
\
...
...
@@ -73,8 +73,10 @@ SOURCES += breakhandler.cpp \
debuggerrunner
.
cpp
\
debuggerstreamops
.
cpp
\
debuggertooltip
.
cpp
\
disassembleragent
.
cpp
\
disassemblerlines
.
cpp
\
logwindow
.
cpp
\
memoryagent
.
cpp
\
moduleshandler
.
cpp
\
moduleswindow
.
cpp
\
name_demangler
.
cpp
\
...
...
src/plugins/debugger/debuggerengine.cpp
View file @
cfd2dbb3
...
...
@@ -30,13 +30,14 @@
#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"
...
...
@@ -1418,6 +1419,17 @@ bool DebuggerEngine::isCppBreakpoint(const BreakpointParameters &p)
&&
!
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"
src/plugins/debugger/debuggerengine.h
View file @
cfd2dbb3
...
...
@@ -160,8 +160,10 @@ public:
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
);
...
...
src/plugins/debugger/debuggerplugin.cpp
View file @
cfd2dbb3
...
...
@@ -30,7 +30,6 @@
#include
"debuggerplugin.h"
#include
"debuggeractions.h"
#include
"debuggeragents.h"
#include
"debuggerconstants.h"
#include
"debuggercore.h"
#include
"debuggerdialogs.h"
...
...
@@ -44,6 +43,7 @@
#include
"breakhandler.h"
#include
"breakwindow.h"
#include
"consolewindow.h"
#include
"disassembleragent.h"
#include
"logwindow.h"
#include
"moduleswindow.h"
#include
"registerwindow.h"
...
...
@@ -2430,7 +2430,7 @@ void DebuggerPluginPrivate::openMemoryEditor()
{
AddressDialog
dialog
;
if
(
dialog
.
exec
()
==
QDialog
::
Accepted
)
(
void
)
new
MemoryViewAgent
(
currentEngine
(),
dialog
.
address
());
currentEngine
()
->
openMemoryView
(
dialog
.
address
());
}
void
DebuggerPluginPrivate
::
coreShutdown
()
...
...
src/plugins/debugger/d
ebugg
eragent
s
.cpp
→
src/plugins/debugger/d
isassembl
eragent.cpp
View file @
cfd2dbb3
...
...
@@ -27,7 +27,7 @@
**
**************************************************************************/
#include
"d
ebugg
eragent
s
.h"
#include
"d
isassembl
eragent.h"
#include
"breakhandler.h"
#include
"debuggerengine.h"
...
...
@@ -36,10 +36,9 @@
#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>
...
...
@@ -49,143 +48,15 @@
#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
;
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
(
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
...
...
src/plugins/debugger/d
ebugg
eragent
s
.h
→
src/plugins/debugger/d
isassembl
eragent.h
View file @
cfd2dbb3
...
...
@@ -27,15 +27,13 @@
**
**************************************************************************/
#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
;
...
...
@@ -51,40 +49,13 @@ class StackFrame;
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
);
...
...
@@ -105,6 +76,7 @@ public:
// Return address of an assembly line "0x0dfd bla"
static
quint64
addressFromDisassemblyLine
(
const
QString
&
data
);
private:
DisassemblerViewAgentPrivate
*
d
;
};
...
...
@@ -113,4 +85,4 @@ private:
}
// namespace Internal
}
// namespace Debugger
#endif // DEBUGGER_
WATCHWINDOW
_H
#endif // DEBUGGER_
DISASSEMBLERAGENT
_H
src/plugins/debugger/gdb/gdbengine.cpp
View file @
cfd2dbb3
...
...
@@ -31,11 +31,6 @@
#include
"gdbengine.h"
#include
"gdboptionspage.h"
#include
"debuggercore.h"
#include
"debuggerplugin.h"
#include
"debuggerrunner.h"
#include
"attachgdbadapter.h"
#include
"coregdbadapter.h"
#include
"localplaingdbadapter.h"
...
...
@@ -45,13 +40,18 @@
#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"
...
...
@@ -62,16 +62,12 @@
#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>
...
...
src/plugins/debugger/lldb/ipcenginehost.cpp
View file @
cfd2dbb3
...
...
@@ -28,6 +28,7 @@
**************************************************************************/
#include
"ipcenginehost.h"
#include
"ipcengineguest.h"
#include
"breakhandler.h"
#include
"breakpoint.h"
...
...
@@ -38,15 +39,17 @@
#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
...
...
src/plugins/debugger/lldb/lldbenginehost.cpp
View file @
cfd2dbb3
...
...
@@ -36,7 +36,6 @@
#include
"debuggerdialogs.h"
#include
"debuggerplugin.h"
#include
"debuggerstringutils.h"
#include
"coreplugin/icore.h"
#include
"breakhandler.h"
#include
"breakpoint.h"
...
...
@@ -46,9 +45,12 @@
#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>
...
...
src/plugins/debugger/memoryagent.cpp
0 → 100644
View file @
cfd2dbb3
/**************************************************************************
**
** 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
)
{