Skip to content
Snippets Groups Projects
Commit 05b77b95 authored by hjk's avatar hjk
Browse files

debugger: make activateFrame() dispatch properly to the qml/cpp slaves

parent 77afdb42
No related branches found
No related tags found
No related merge requests found
...@@ -59,16 +59,17 @@ private: ...@@ -59,16 +59,17 @@ private:
DebuggerEngine *m_qmlEngine; DebuggerEngine *m_qmlEngine;
DebuggerEngine *m_cppEngine; DebuggerEngine *m_cppEngine;
DebuggerEngine *m_activeEngine; DebuggerEngine *m_activeEngine;
int m_stackBoundary;
}; };
QmlCppEnginePrivate::QmlCppEnginePrivate(QmlCppEngine *parent, QmlCppEnginePrivate::QmlCppEnginePrivate(QmlCppEngine *parent,
const DebuggerStartParameters &sp) const DebuggerStartParameters &sp)
: q(parent), : q(parent)
m_qmlEngine(0),
m_cppEngine(0),
m_activeEngine(0)
{ {
m_stackBoundary = 0;
m_cppEngine = 0;
m_activeEngine = 0;
m_qmlEngine = createQmlEngine(sp, q); m_qmlEngine = createQmlEngine(sp, q);
if (sp.cppEngineType == GdbEngineType) { if (sp.cppEngineType == GdbEngineType) {
...@@ -100,6 +101,7 @@ void QmlCppEnginePrivate::cppStackChanged() ...@@ -100,6 +101,7 @@ void QmlCppEnginePrivate::cppStackChanged()
frames.append(frame); frames.append(frame);
} }
int level = frames.size(); int level = frames.size();
m_stackBoundary = level;
foreach (StackFrame frame, m_qmlEngine->stackHandler()->frames()) { foreach (StackFrame frame, m_qmlEngine->stackHandler()->frames()) {
frame.level = level++; frame.level = level++;
frames.append(frame); frames.append(frame);
...@@ -109,7 +111,9 @@ void QmlCppEnginePrivate::cppStackChanged() ...@@ -109,7 +111,9 @@ void QmlCppEnginePrivate::cppStackChanged()
void QmlCppEnginePrivate::qmlStackChanged() void QmlCppEnginePrivate::qmlStackChanged()
{ {
q->stackHandler()->setFrames(m_qmlEngine->stackHandler()->frames()); StackFrames frames = m_qmlEngine->stackHandler()->frames();
q->stackHandler()->setFrames(frames);
m_stackBoundary = frames.size();
} }
...@@ -163,7 +167,10 @@ void QmlCppEngine::fetchDisassembler(DisassemblerAgent *da) ...@@ -163,7 +167,10 @@ void QmlCppEngine::fetchDisassembler(DisassemblerAgent *da)
void QmlCppEngine::activateFrame(int index) void QmlCppEngine::activateFrame(int index)
{ {
d->m_cppEngine->activateFrame(index); if (index >= d->m_stackBoundary)
d->m_qmlEngine->activateFrame(index - d->m_stackBoundary);
else
d->m_cppEngine->activateFrame(index);
} }
void QmlCppEngine::reloadModules() void QmlCppEngine::reloadModules()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment