| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | /**************************************************************************
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-06-17 00:01:27 +10:00
										 |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** Commercial Usage | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** 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. | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** GNU Lesser General Public License Usage | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** 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.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** If you are unsure which license is appropriate for your use, please | 
					
						
							| 
									
										
										
										
											2009-08-14 09:30:56 +02:00
										 |  |  | ** contact the sales department at http://qt.nokia.com/contact.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | **************************************************************************/ | 
					
						
							| 
									
										
										
										
											2008-12-02 15:08:31 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #ifndef DEBUGGER_DEBUGGERMANAGER_H
 | 
					
						
							|  |  |  | #define DEBUGGER_DEBUGGERMANAGER_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-06 16:01:51 +02:00
										 |  |  | #include <utils/fancymainwindow.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <QtCore/QByteArray>
 | 
					
						
							|  |  |  | #include <QtCore/QObject>
 | 
					
						
							|  |  |  | #include <QtCore/QStringList>
 | 
					
						
							|  |  |  | #include <QtCore/QVariant>
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | #include <QtCore/QSharedPointer>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | QT_BEGIN_NAMESPACE | 
					
						
							|  |  |  | class QAction; | 
					
						
							|  |  |  | class QAbstractItemModel; | 
					
						
							|  |  |  | class QDockWidget; | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  | class QLabel; | 
					
						
							| 
									
										
										
										
											2009-09-23 09:54:21 +02:00
										 |  |  | class QMessageBox; | 
					
						
							| 
									
										
										
										
											2009-06-24 12:31:09 +02:00
										 |  |  | class QModelIndex; | 
					
						
							| 
									
										
										
										
											2009-05-08 15:37:41 +02:00
										 |  |  | class QPoint; | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  | class QTimer; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class QWidget; | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | class QDebug; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | QT_END_NAMESPACE | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-17 09:03:32 +02:00
										 |  |  | namespace Core { | 
					
						
							| 
									
										
										
										
											2009-05-08 15:37:41 +02:00
										 |  |  | class IOptionsPage; | 
					
						
							|  |  |  | } // namespace Core
 | 
					
						
							| 
									
										
										
										
											2009-04-17 09:03:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-14 14:29:37 +02:00
										 |  |  | namespace TextEditor { | 
					
						
							| 
									
										
										
										
											2009-06-19 12:04:21 +02:00
										 |  |  | class ITextEditor; | 
					
						
							| 
									
										
										
										
											2009-05-14 14:29:37 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | namespace Debugger { | 
					
						
							|  |  |  | namespace Internal { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-08 15:37:41 +02:00
										 |  |  | typedef QLatin1Char _c; | 
					
						
							|  |  |  | typedef QLatin1String __; | 
					
						
							|  |  |  | inline QString _(const char *s) { return QString::fromLatin1(s); } | 
					
						
							|  |  |  | inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class DebuggerOutputWindow; | 
					
						
							| 
									
										
										
										
											2009-05-05 17:48:54 +02:00
										 |  |  | class DebuggerRunControl; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class DebuggerPlugin; | 
					
						
							|  |  |  | class DebugMode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BreakHandler; | 
					
						
							| 
									
										
										
										
											2009-06-24 12:31:09 +02:00
										 |  |  | class BreakpointData; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class ModulesHandler; | 
					
						
							|  |  |  | class RegisterHandler; | 
					
						
							| 
									
										
										
										
											2009-06-24 12:31:09 +02:00
										 |  |  | class SourceFilesWindow; | 
					
						
							| 
									
										
										
										
											2009-08-17 16:03:27 +02:00
										 |  |  | struct StackFrame; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class StackHandler; | 
					
						
							| 
									
										
										
										
											2009-06-24 12:31:09 +02:00
										 |  |  | class Symbol; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class ThreadsHandler; | 
					
						
							|  |  |  | class WatchData; | 
					
						
							| 
									
										
										
										
											2009-06-24 12:31:09 +02:00
										 |  |  | class WatchHandler; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Note: the Debugger process itself is referred to as 'Debugger',
 | 
					
						
							|  |  |  | // whereas the debugged process is referred to as 'Inferior' or 'Debuggee'.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //     DebuggerProcessNotReady
 | 
					
						
							|  |  |  | //          |
 | 
					
						
							|  |  |  | //     DebuggerProcessStartingUp
 | 
					
						
							|  |  |  | //          | <-------------------------------------.
 | 
					
						
							|  |  |  | //     DebuggerInferiorRunningRequested             |
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | //          |                                       |
 | 
					
						
							|  |  |  | //     DebuggerInferiorRunning                      |
 | 
					
						
							|  |  |  | //          |                                       |
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | //     DebuggerInferiorStopRequested                |
 | 
					
						
							|  |  |  | //          |                                       |
 | 
					
						
							|  |  |  | //     DebuggerInferiorStopped                      |
 | 
					
						
							|  |  |  | //          |                                       |
 | 
					
						
							|  |  |  | //          `---------------------------------------'
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Allowed actions:
 | 
					
						
							|  |  |  | //    [R] :  Run
 | 
					
						
							|  |  |  | //    [C] :  Continue
 | 
					
						
							|  |  |  | //    [N] :  Step, Next
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum DebuggerStatus | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     DebuggerProcessNotReady,          // Debugger not started
 | 
					
						
							|  |  |  |     DebuggerProcessStartingUp,        // Debugger starting up
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     DebuggerInferiorRunningRequested, // Debuggee requested to run
 | 
					
						
							|  |  |  |     DebuggerInferiorRunning,          // Debuggee running
 | 
					
						
							|  |  |  |     DebuggerInferiorStopRequested,    // Debuggee running, stop requested
 | 
					
						
							|  |  |  |     DebuggerInferiorStopped,          // Debuggee stopped
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-02 15:14:12 +01:00
										 |  |  | enum DebuggerStartMode | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-06-19 13:09:50 +02:00
										 |  |  |     NoStartMode, | 
					
						
							| 
									
										
										
										
											2009-05-26 16:27:24 +02:00
										 |  |  |     StartInternal,         // Start current start project's binary
 | 
					
						
							|  |  |  |     StartExternal,         // Start binary found in file system
 | 
					
						
							|  |  |  |     AttachExternal,        // Attach to running process by process id
 | 
					
						
							|  |  |  |     AttachCrashedExternal, // Attach to crashed process by process id
 | 
					
						
							|  |  |  |     AttachTcf,             // Attach to a running Target Communication Framework agent
 | 
					
						
							|  |  |  |     AttachCore,            // Attach to a core file
 | 
					
						
							|  |  |  |     StartRemote            // Start and attach to a remote process
 | 
					
						
							| 
									
										
										
										
											2009-03-02 15:14:12 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-19 12:04:21 +02:00
										 |  |  | enum LogChannel | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     LogInput,   // Used for user input
 | 
					
						
							|  |  |  |     LogOutput, | 
					
						
							| 
									
										
										
										
											2009-06-19 12:47:23 +02:00
										 |  |  |     LogWarning, | 
					
						
							| 
									
										
										
										
											2009-06-19 12:04:21 +02:00
										 |  |  |     LogError, | 
					
						
							|  |  |  |     LogStatus,  // Used for status changed messages
 | 
					
						
							| 
									
										
										
										
											2009-07-06 09:54:24 +02:00
										 |  |  |     LogTime,  // Used for time stamp messages
 | 
					
						
							| 
									
										
										
										
											2009-06-19 12:04:21 +02:00
										 |  |  |     LogDebug, | 
					
						
							|  |  |  |     LogMisc     | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-14 13:04:05 +02:00
										 |  |  | class DebuggerStartParameters | 
					
						
							| 
									
										
										
										
											2009-06-12 12:57:22 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-08-14 13:04:05 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     DebuggerStartParameters(); | 
					
						
							|  |  |  |     void clear(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QString executable; | 
					
						
							|  |  |  |     QString coreFile; | 
					
						
							|  |  |  |     QStringList processArgs; | 
					
						
							|  |  |  |     QStringList environment; | 
					
						
							|  |  |  |     QString workingDir; | 
					
						
							|  |  |  |     QString buildDir; | 
					
						
							|  |  |  |     qint64 attachPID; | 
					
						
							|  |  |  |     bool useTerminal; | 
					
						
							| 
									
										
										
										
											2009-05-26 16:27:24 +02:00
										 |  |  |     QString crashParameter; // for AttachCrashedExternal
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     // for remote debugging
 | 
					
						
							|  |  |  |     QString remoteChannel; | 
					
						
							|  |  |  |     QString remoteArchitecture; | 
					
						
							|  |  |  |     QString serverStartScript; | 
					
						
							| 
									
										
										
										
											2009-06-18 15:16:18 +02:00
										 |  |  |     int toolChainType; | 
					
						
							| 
									
										
										
										
											2009-09-17 11:48:39 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QString dumperLibrary; | 
					
						
							|  |  |  |     QStringList dumperLibraryLocations; | 
					
						
							| 
									
										
										
										
											2009-09-17 13:11:18 +02:00
										 |  |  |     DebuggerStartMode startMode; | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-17 13:11:18 +02:00
										 |  |  | typedef QSharedPointer<DebuggerStartParameters> DebuggerStartParametersPtr; | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | QDebug operator<<(QDebug str, const DebuggerStartParameters &); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class IDebuggerEngine; | 
					
						
							|  |  |  | class GdbEngine; | 
					
						
							|  |  |  | class ScriptEngine; | 
					
						
							| 
									
										
										
										
											2009-02-20 14:56:36 +01:00
										 |  |  | class CdbDebugEngine; | 
					
						
							| 
									
										
										
										
											2009-02-20 17:07:00 +01:00
										 |  |  | struct CdbDebugEnginePrivate; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | // Flags for initialization
 | 
					
						
							| 
									
										
										
										
											2009-09-10 13:09:42 +02:00
										 |  |  | enum DebuggerEngineTypeFlags | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     GdbEngineType     = 0x01, | 
					
						
							|  |  |  |     ScriptEngineType  = 0x02, | 
					
						
							|  |  |  |     CdbEngineType     = 0x04, | 
					
						
							|  |  |  |     TcfEngineType     = 0x08, | 
					
						
							|  |  |  |     AllEngineTypes = GdbEngineType | 
					
						
							|  |  |  |         | ScriptEngineType  | 
					
						
							|  |  |  |         | CdbEngineType  | 
					
						
							|  |  |  |         | TcfEngineType | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | // The construct below is not nice but enforces a bit of order. The
 | 
					
						
							|  |  |  | // DebuggerManager interfaces a lots of thing: The DebuggerPlugin,
 | 
					
						
							|  |  |  | // the DebuggerEngines, the RunMode, the handlers and views.
 | 
					
						
							|  |  |  | // Instead of making the whole interface public, we split in into
 | 
					
						
							|  |  |  | // smaller parts and grant friend access only to the classes that
 | 
					
						
							|  |  |  | // need it.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // IDebuggerManagerAccessForEngines
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class IDebuggerManagerAccessForEngines | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual ~IDebuggerManagerAccessForEngines() {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     // This is the part of the interface that's exclusively seen by the
 | 
					
						
							| 
									
										
										
										
											2009-02-20 17:07:00 +01:00
										 |  |  |     // debugger engines
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-20 14:56:36 +01:00
										 |  |  |     friend class CdbDebugEngine; | 
					
						
							|  |  |  |     friend class CdbDebugEventCallback; | 
					
						
							| 
									
										
										
										
											2009-04-22 17:28:26 +02:00
										 |  |  |     friend class CdbDumperHelper; | 
					
						
							| 
									
										
										
										
											2009-04-29 14:15:09 +02:00
										 |  |  |     friend class CdbExceptionLoggerEventCallback; | 
					
						
							| 
									
										
										
										
											2009-05-07 16:51:02 +02:00
										 |  |  |     friend class GdbEngine; | 
					
						
							|  |  |  |     friend class ScriptEngine; | 
					
						
							|  |  |  |     friend class TcfEngine; | 
					
						
							|  |  |  |     friend struct CdbDebugEnginePrivate; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // called from the engines after successful startup
 | 
					
						
							| 
									
										
										
										
											2009-02-16 18:28:15 +01:00
										 |  |  |     virtual void notifyInferiorStopRequested() = 0; | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     virtual void notifyInferiorStopped() = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual void notifyInferiorRunningRequested() = 0; | 
					
						
							|  |  |  |     virtual void notifyInferiorRunning() = 0; | 
					
						
							|  |  |  |     virtual void notifyInferiorExited() = 0; | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     virtual void notifyInferiorPidChanged(qint64) = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual ModulesHandler *modulesHandler() = 0; | 
					
						
							|  |  |  |     virtual BreakHandler *breakHandler() = 0; | 
					
						
							|  |  |  |     virtual RegisterHandler *registerHandler() = 0; | 
					
						
							|  |  |  |     virtual StackHandler *stackHandler() = 0; | 
					
						
							|  |  |  |     virtual ThreadsHandler *threadsHandler() = 0; | 
					
						
							|  |  |  |     virtual WatchHandler *watchHandler() = 0; | 
					
						
							| 
									
										
										
										
											2009-02-17 14:08:49 +01:00
										 |  |  |     virtual SourceFilesWindow *sourceFileWindow() = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:49 +01:00
										 |  |  |     virtual void showApplicationOutput(const QString &data) = 0; | 
					
						
							| 
									
										
										
										
											2009-06-19 12:04:21 +02:00
										 |  |  |     virtual void showDebuggerOutput(int channel, const QString &msg) = 0; | 
					
						
							|  |  |  |     virtual void showDebuggerInput(int channel, const QString &msg) = 0; | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual void reloadModules() = 0; | 
					
						
							| 
									
										
										
										
											2009-02-17 14:08:49 +01:00
										 |  |  |     virtual void reloadSourceFiles() = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual void reloadRegisters() = 0; | 
					
						
							| 
									
										
										
										
											2009-04-22 17:28:26 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual bool qtDumperLibraryEnabled() const = 0; | 
					
						
							|  |  |  |     virtual QString qtDumperLibraryName() const = 0; | 
					
						
							| 
									
										
										
										
											2009-07-15 17:41:45 +02:00
										 |  |  |     virtual QStringList qtDumperLibraryLocations() const = 0; | 
					
						
							| 
									
										
										
										
											2009-04-22 17:28:26 +02:00
										 |  |  |     virtual void showQtDumperLibraryWarning(const QString &details = QString()) = 0; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  |     virtual bool isReverseDebugging() const = 0; | 
					
						
							| 
									
										
										
										
											2009-04-22 17:28:26 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     virtual qint64 inferiorPid() const = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-17 13:11:18 +02:00
										 |  |  |     virtual DebuggerStartParametersPtr startParameters() const = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // DebuggerManager
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-12 10:51:25 +02:00
										 |  |  | class DebuggerManager : public QObject, public IDebuggerManagerAccessForEngines | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-04-17 09:03:32 +02:00
										 |  |  |     DebuggerManager(); | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     QList<Core::IOptionsPage*> initializeEngines(unsigned enabledTypeFlags); | 
					
						
							| 
									
										
										
										
											2009-04-17 09:03:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ~DebuggerManager(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     IDebuggerManagerAccessForEngines *engineInterface(); | 
					
						
							| 
									
										
										
										
											2009-08-06 16:01:51 +02:00
										 |  |  |     Core::Utils::FancyMainWindow *mainWindow() const { return m_mainWindow; } | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  |     QLabel *statusLabel() const { return m_statusLabel; } | 
					
						
							| 
									
										
										
										
											2009-08-12 10:51:25 +02:00
										 |  |  |     IDebuggerEngine *currentEngine() const { return m_engine; } | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-17 13:11:18 +02:00
										 |  |  |     virtual DebuggerStartParametersPtr startParameters() const; | 
					
						
							| 
									
										
										
										
											2009-09-14 11:02:36 +02:00
										 |  |  |     virtual qint64 inferiorPid() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-23 09:54:21 +02:00
										 |  |  |     void showMessageBox(int icon, const QString &title, const QString &text); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public slots: | 
					
						
							| 
									
										
										
										
											2009-09-17 13:11:18 +02:00
										 |  |  |     void startNewDebugger(const DebuggerStartParametersPtr &sp); | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     void exitDebugger(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void setSimpleDockWidgetArrangement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void setBusyCursor(bool on); | 
					
						
							|  |  |  |     void queryCurrentTextEditor(QString *fileName, int *lineNumber, QObject **ed); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-14 13:04:05 +02:00
										 |  |  |     void gotoLocation(const StackFrame &frame, bool setLocationMarker); | 
					
						
							| 
									
										
										
										
											2009-03-10 19:35:17 +01:00
										 |  |  |     void fileOpen(const QString &file); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void resetLocation(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void interruptDebuggingRequest(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void jumpToLineExec(); | 
					
						
							|  |  |  |     void runToLineExec(); | 
					
						
							|  |  |  |     void runToFunctionExec(); | 
					
						
							|  |  |  |     void toggleBreakpoint(); | 
					
						
							|  |  |  |     void breakByFunction(const QString &functionName); | 
					
						
							| 
									
										
										
										
											2009-06-12 12:57:22 +02:00
										 |  |  |     void breakByFunctionMain(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void setBreakpoint(const QString &fileName, int lineNumber); | 
					
						
							|  |  |  |     void activateFrame(int index); | 
					
						
							|  |  |  |     void selectThread(int index); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void stepExec(); | 
					
						
							|  |  |  |     void stepOutExec(); | 
					
						
							|  |  |  |     void nextExec(); | 
					
						
							|  |  |  |     void continueExec(); | 
					
						
							| 
									
										
										
										
											2009-05-07 15:20:44 +02:00
										 |  |  |     void detachDebugger(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     void addToWatchWindow(); | 
					
						
							| 
									
										
										
										
											2009-07-13 09:11:07 +02:00
										 |  |  |     void updateWatchData(const WatchData &data); | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void sessionLoaded(); | 
					
						
							| 
									
										
										
										
											2009-08-13 17:10:53 +02:00
										 |  |  |     void aboutToUnloadSession(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void aboutToSaveSession(); | 
					
						
							| 
									
										
										
										
											2009-08-14 13:04:05 +02:00
										 |  |  |     QVariant sessionValue(const QString &name); | 
					
						
							|  |  |  |     void setSessionValue(const QString &name, const QVariant &value); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-19 15:24:18 +01:00
										 |  |  |     void assignValueInDebugger(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void assignValueInDebugger(const QString &expr, const QString &value); | 
					
						
							| 
									
										
										
										
											2009-04-03 15:46:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     void executeDebuggerCommand(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void executeDebuggerCommand(const QString &command); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-01 12:49:41 +02:00
										 |  |  |     void watchPoint(); | 
					
						
							| 
									
										
										
										
											2009-08-18 08:34:48 +02:00
										 |  |  |     void setRegisterValue(int nr, const QString &value); | 
					
						
							| 
									
										
										
										
											2009-07-01 12:49:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  |     void showStatusMessage(const QString &msg, int timeout = -1); // -1 forever
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | private slots: | 
					
						
							| 
									
										
										
										
											2009-09-10 13:09:42 +02:00
										 |  |  |     void showDebuggerOutput(const QString &msg) | 
					
						
							|  |  |  |         { showDebuggerOutput(LogDebug, msg); } | 
					
						
							| 
									
										
										
										
											2009-06-19 12:04:21 +02:00
										 |  |  |     void showDebuggerOutput(int channel, const QString &msg); | 
					
						
							|  |  |  |     void showDebuggerInput(int channel, const QString &msg); | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:49 +01:00
										 |  |  |     void showApplicationOutput(const QString &data); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-17 14:08:49 +01:00
										 |  |  |     void reloadSourceFiles(); | 
					
						
							|  |  |  |     void sourceFilesDockToggled(bool on); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void reloadModules(); | 
					
						
							|  |  |  |     void modulesDockToggled(bool on); | 
					
						
							|  |  |  |     void loadSymbols(const QString &moduleName); | 
					
						
							|  |  |  |     void loadAllSymbols(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void reloadRegisters(); | 
					
						
							|  |  |  |     void registerDockToggled(bool on); | 
					
						
							|  |  |  |     void setStatus(int status); | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  |     void clearStatusMessage(); | 
					
						
							| 
									
										
										
										
											2009-03-10 17:30:11 +01:00
										 |  |  |     void attemptBreakpointSynchronization(); | 
					
						
							| 
									
										
										
										
											2009-05-06 10:21:50 +02:00
										 |  |  |     void reloadFullStack(); | 
					
						
							| 
									
										
										
										
											2009-08-14 13:04:05 +02:00
										 |  |  |     void stepByInstructionTriggered(); | 
					
						
							| 
									
										
										
										
											2009-09-10 13:09:42 +02:00
										 |  |  |     void startFailed(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     //
 | 
					
						
							|  |  |  |     // Implementation of IDebuggerManagerAccessForEngines
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     //
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ModulesHandler *modulesHandler() { return m_modulesHandler; } | 
					
						
							|  |  |  |     BreakHandler *breakHandler() { return m_breakHandler; } | 
					
						
							|  |  |  |     RegisterHandler *registerHandler() { return m_registerHandler; } | 
					
						
							|  |  |  |     StackHandler *stackHandler() { return m_stackHandler; } | 
					
						
							|  |  |  |     ThreadsHandler *threadsHandler() { return m_threadsHandler; } | 
					
						
							|  |  |  |     WatchHandler *watchHandler() { return m_watchHandler; } | 
					
						
							| 
									
										
										
										
											2009-02-17 14:08:49 +01:00
										 |  |  |     SourceFilesWindow *sourceFileWindow() { return m_sourceFilesWindow; } | 
					
						
							| 
									
										
										
										
											2009-01-27 15:53:50 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void notifyInferiorStopped(); | 
					
						
							|  |  |  |     void notifyInferiorRunningRequested(); | 
					
						
							| 
									
										
										
										
											2009-02-16 18:28:15 +01:00
										 |  |  |     void notifyInferiorStopRequested(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void notifyInferiorRunning(); | 
					
						
							|  |  |  |     void notifyInferiorExited(); | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     void notifyInferiorPidChanged(qint64); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     void cleanupViews(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     //
 | 
					
						
							|  |  |  |     // Implementation of IDebuggerManagerAccessForDebugMode
 | 
					
						
							|  |  |  |     //
 | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  |     QWidget *threadsWindow() const { return m_threadsWindow; } | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-22 17:28:26 +02:00
										 |  |  |     virtual bool qtDumperLibraryEnabled() const; | 
					
						
							|  |  |  |     virtual QString qtDumperLibraryName() const; | 
					
						
							| 
									
										
										
										
											2009-07-15 17:41:45 +02:00
										 |  |  |     virtual QStringList qtDumperLibraryLocations() const; | 
					
						
							| 
									
										
										
										
											2009-04-22 17:28:26 +02:00
										 |  |  |     virtual void showQtDumperLibraryWarning(const QString &details = QString()); | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  |     virtual bool isReverseDebugging() const; | 
					
						
							| 
									
										
										
										
											2009-04-22 17:28:26 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     //
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     // internal implementation
 | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     //
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     Q_SLOT void loadSessionData(); | 
					
						
							|  |  |  |     Q_SLOT void saveSessionData(); | 
					
						
							|  |  |  |     Q_SLOT void dumpLog(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     // stuff in this block should be made private by moving it to
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     // one of the interfaces
 | 
					
						
							|  |  |  |     QAbstractItemModel *threadsModel(); | 
					
						
							|  |  |  |     int status() const { return m_status; } | 
					
						
							| 
									
										
										
										
											2009-09-14 11:02:36 +02:00
										 |  |  |     // FIXME: hide this in the engines?
 | 
					
						
							| 
									
										
										
										
											2009-09-17 14:17:43 +02:00
										 |  |  |     //DebuggerStartMode startMode() const;
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 12:01:58 +02:00
										 |  |  |     QList<Symbol> moduleSymbols(const QString &moduleName); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | signals: | 
					
						
							|  |  |  |     void debuggingFinished(); | 
					
						
							|  |  |  |     void inferiorPidChanged(qint64 pid); | 
					
						
							|  |  |  |     void statusChanged(int newstatus); | 
					
						
							|  |  |  |     void debugModeRequested(); | 
					
						
							|  |  |  |     void previousModeRequested(); | 
					
						
							|  |  |  |     void statusMessageRequested(const QString &msg, int timeout); // -1 for 'forever'
 | 
					
						
							| 
									
										
										
										
											2009-08-14 13:04:05 +02:00
										 |  |  |     void gotoLocationRequested(const StackFrame &frame, bool setLocationMarker); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void resetLocationRequested(); | 
					
						
							|  |  |  |     void currentTextEditorRequested(QString *fileName, int *lineNumber, QObject **ob); | 
					
						
							|  |  |  |     void sessionValueRequested(const QString &name, QVariant *value); | 
					
						
							|  |  |  |     void setSessionValueRequested(const QString &name, const QVariant &value); | 
					
						
							|  |  |  |     void configValueRequested(const QString &name, QVariant *value); | 
					
						
							|  |  |  |     void setConfigValueRequested(const QString &name, const QVariant &value); | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:49 +01:00
										 |  |  |     void applicationOutputAvailable(const QString &output); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2009-04-17 09:03:32 +02:00
										 |  |  |     void init(); | 
					
						
							| 
									
										
										
										
											2009-04-06 16:30:11 +02:00
										 |  |  |     void runTest(const QString &fileName); | 
					
						
							| 
									
										
										
										
											2009-03-12 14:17:32 +01:00
										 |  |  |     Q_SLOT void createNewDock(QWidget *widget); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     void shutdown(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void toggleBreakpoint(const QString &fileName, int lineNumber); | 
					
						
							| 
									
										
										
										
											2009-04-28 15:08:52 +02:00
										 |  |  |     void toggleBreakpointEnabled(const QString &fileName, int lineNumber); | 
					
						
							|  |  |  |     BreakpointData *findBreakpoint(const QString &fileName, int lineNumber); | 
					
						
							| 
									
										
										
										
											2009-05-14 14:29:37 +02:00
										 |  |  |     void setToolTipExpression(const QPoint &mousePos, TextEditor::ITextEditor *editor, int cursorPos); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-11 12:30:53 +02:00
										 |  |  |     // FIXME: Remove engine-specific state
 | 
					
						
							| 
									
										
										
										
											2009-09-17 13:11:18 +02:00
										 |  |  |     DebuggerStartParametersPtr m_startParameters; | 
					
						
							| 
									
										
										
										
											2009-05-25 16:22:11 +02:00
										 |  |  |     qint64 m_inferiorPid; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /// Views
 | 
					
						
							| 
									
										
										
										
											2009-08-06 16:01:51 +02:00
										 |  |  |     Core::Utils::FancyMainWindow *m_mainWindow; | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  |     QLabel *m_statusLabel; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QDockWidget *m_breakDock; | 
					
						
							|  |  |  |     QDockWidget *m_modulesDock; | 
					
						
							|  |  |  |     QDockWidget *m_outputDock; | 
					
						
							|  |  |  |     QDockWidget *m_registerDock; | 
					
						
							|  |  |  |     QDockWidget *m_stackDock; | 
					
						
							| 
									
										
										
										
											2009-02-17 14:08:49 +01:00
										 |  |  |     QDockWidget *m_sourceFilesDock; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QDockWidget *m_threadsDock; | 
					
						
							|  |  |  |     QDockWidget *m_watchDock; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     BreakHandler *m_breakHandler; | 
					
						
							|  |  |  |     ModulesHandler *m_modulesHandler; | 
					
						
							|  |  |  |     RegisterHandler *m_registerHandler; | 
					
						
							|  |  |  |     StackHandler *m_stackHandler; | 
					
						
							|  |  |  |     ThreadsHandler *m_threadsHandler; | 
					
						
							|  |  |  |     WatchHandler *m_watchHandler; | 
					
						
							| 
									
										
										
										
											2009-02-17 14:08:49 +01:00
										 |  |  |     SourceFilesWindow *m_sourceFilesWindow; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /// Actions
 | 
					
						
							|  |  |  |     friend class DebuggerPlugin; | 
					
						
							|  |  |  |     QAction *m_continueAction; | 
					
						
							|  |  |  |     QAction *m_stopAction; | 
					
						
							|  |  |  |     QAction *m_resetAction; // FIXME: Should not be needed in a stable release
 | 
					
						
							|  |  |  |     QAction *m_stepAction; | 
					
						
							|  |  |  |     QAction *m_stepOutAction; | 
					
						
							|  |  |  |     QAction *m_runToLineAction; | 
					
						
							|  |  |  |     QAction *m_runToFunctionAction; | 
					
						
							|  |  |  |     QAction *m_jumpToLineAction; | 
					
						
							|  |  |  |     QAction *m_nextAction; | 
					
						
							|  |  |  |     QAction *m_watchAction; | 
					
						
							|  |  |  |     QAction *m_breakAction; | 
					
						
							|  |  |  |     QAction *m_sepAction; | 
					
						
							| 
									
										
										
										
											2009-08-14 13:04:05 +02:00
										 |  |  |     //QActio *m_stepByInstructionAction;
 | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  |     QAction *m_reverseDirectionAction; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QWidget *m_breakWindow; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:11:07 +02:00
										 |  |  |     QWidget *m_localsWindow; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QWidget *m_registerWindow; | 
					
						
							|  |  |  |     QWidget *m_modulesWindow; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:11:07 +02:00
										 |  |  |     //QWidget *m_tooltipWindow;
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QWidget *m_stackWindow; | 
					
						
							|  |  |  |     QWidget *m_threadsWindow; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:11:07 +02:00
										 |  |  |     QWidget *m_watchersWindow; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DebuggerOutputWindow *m_outputWindow; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int m_status; | 
					
						
							|  |  |  |     bool m_busy; | 
					
						
							| 
									
										
										
										
											2008-12-08 14:26:11 +01:00
										 |  |  |     QTimer *m_statusTimer; | 
					
						
							|  |  |  |     QString m_lastPermanentStatusMessage; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     IDebuggerEngine *engine(); | 
					
						
							|  |  |  |     IDebuggerEngine *m_engine; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace Internal
 | 
					
						
							|  |  |  | } // namespace Debugger
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // DEBUGGER_DEBUGGERMANAGER_H
 |