diff options
Diffstat (limited to 'src/declarative/debugger/qjsdebugservice.cpp')
-rw-r--r-- | src/declarative/debugger/qjsdebugservice.cpp | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/src/declarative/debugger/qjsdebugservice.cpp b/src/declarative/debugger/qjsdebugservice.cpp deleted file mode 100644 index ad84f656f7..0000000000 --- a/src/declarative/debugger/qjsdebugservice.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "private/qjsdebugservice_p.h" -#include "private/qjsdebuggeragent_p.h" - -#include <QtCore/qdatastream.h> -#include <QtCore/qdebug.h> -#include <QtCore/qstringlist.h> -#include <QtDeclarative/qdeclarativeengine.h> - -Q_GLOBAL_STATIC(QJSDebugService, serviceInstance) - -QJSDebugService::QJSDebugService(QObject *parent) - : QDeclarativeDebugService(QLatin1String("JSDebugger"), parent) - , m_agent(0) -{ -} - -QJSDebugService::~QJSDebugService() -{ - delete m_agent; -} - -QJSDebugService *QJSDebugService::instance() -{ - return serviceInstance(); -} - -void QJSDebugService::addEngine(QDeclarativeEngine *engine) -{ - Q_ASSERT(engine); - Q_ASSERT(!m_engines.contains(engine)); - - m_engines.append(engine); - - if (status() == Enabled && !m_engines.isEmpty() && !m_agent) { - m_agent = new QJSDebuggerAgent(engine, engine); - connect(m_agent, SIGNAL(stopped(bool,QString)), - this, SLOT(executionStopped(bool,QString))); - - while (!m_agent->isInitialized()) { - waitForMessage(); - } - } -} - -void QJSDebugService::removeEngine(QDeclarativeEngine *engine) -{ - Q_ASSERT(engine); - Q_ASSERT(m_engines.contains(engine)); - - m_engines.removeAll(engine); -} - -void QJSDebugService::statusChanged(Status status) -{ - if (status == Enabled && !m_engines.isEmpty() && !m_agent) { - // Multiple engines are currently unsupported - QDeclarativeEngine *engine = m_engines.first(); - m_agent = new QJSDebuggerAgent(engine, engine); - - connect(m_agent, SIGNAL(stopped(bool,QString)), - this, SLOT(executionStopped(bool,QString))); - - } else if (status != Enabled && m_agent) { - delete m_agent; - m_agent = 0; - } -} - -void QJSDebugService::messageReceived(const QByteArray &message) -{ - if (!m_agent) { - qWarning() << "QJSDebugService::messageReceived: No QJSDebuggerAgent available"; - return; - } - - QDataStream ds(message); - QByteArray command; - ds >> command; - if (command == "BREAKPOINTS") { - JSAgentBreakpoints breakpoints; - ds >> breakpoints; - m_agent->setBreakpoints(breakpoints); - - //qDebug() << "BREAKPOINTS"; - //foreach (const JSAgentBreakpointData &bp, breakpoints) - // qDebug() << "BREAKPOINT: " << bp.fileUrl << bp.lineNumber; - } else if (command == "WATCH_EXPRESSIONS") { - QStringList watchExpressions; - ds >> watchExpressions; - m_agent->setWatchExpressions(watchExpressions); - } else if (command == "STEPOVER") { - m_agent->stepOver(); - } else if (command == "STEPINTO" || command == "INTERRUPT") { - m_agent->stepInto(); - } else if (command == "STEPOUT") { - m_agent->stepOut(); - } else if (command == "CONTINUE") { - m_agent->continueExecution(); - } else if (command == "EXEC") { - QByteArray id; - QString expr; - ds >> id >> expr; - - JSAgentWatchData data = m_agent->executeExpression(expr); - - QByteArray reply; - QDataStream rs(&reply, QIODevice::WriteOnly); - rs << QByteArray("RESULT") << id << data; - sendMessage(reply); - } else if (command == "EXPAND") { - QByteArray requestId; - quint64 objectId; - ds >> requestId >> objectId; - - QList<JSAgentWatchData> result = m_agent->expandObjectById(objectId); - - QByteArray reply; - QDataStream rs(&reply, QIODevice::WriteOnly); - rs << QByteArray("EXPANDED") << requestId << result; - sendMessage(reply); - } else if (command == "ACTIVATE_FRAME") { - int frameId; - ds >> frameId; - - QList<JSAgentWatchData> locals = m_agent->localsAtFrame(frameId); - - QByteArray reply; - QDataStream rs(&reply, QIODevice::WriteOnly); - rs << QByteArray("LOCALS") << frameId << locals; - sendMessage(reply); - } else if (command == "SET_PROPERTY") { - QByteArray id; - qint64 objectId; - QString property; - QString value; - ds >> id >> objectId >> property >> value; - - m_agent->setProperty(objectId, property, value); - - //TODO: feedback - } else if (command == "PING") { - int ping; - ds >> ping; - QByteArray reply; - QDataStream rs(&reply, QIODevice::WriteOnly); - rs << QByteArray("PONG") << ping; - sendMessage(reply); - } else { - qDebug() << Q_FUNC_INFO << "Unknown command" << command; - } - - QDeclarativeDebugService::messageReceived(message); -} - -void QJSDebugService::executionStopped(bool becauseOfException, - const QString &exception) -{ - const QList<JSAgentStackData> backtrace = m_agent->backtrace(); - const QList<JSAgentWatchData> watches = m_agent->watches(); - const QList<JSAgentWatchData> locals = m_agent->locals(); - - QByteArray reply; - QDataStream rs(&reply, QIODevice::WriteOnly); - rs << QByteArray("STOPPED") << backtrace << watches << locals - << becauseOfException << exception; - sendMessage(reply); -} |