forked from qt-creator/qt-creator
		
	Move QML/JS independent classes to common Debugger code. A Debugger Engine needs to override evaluateScriptExpression() to provide engine specific script evaluation. Change-Id: I02b23b380a3eb1b12003b30ded0b7d075e44dfed Reviewed-by: hjk <qthjk@ovi.com>
		
			
				
	
	
		
			215 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**************************************************************************
 | 
						|
**
 | 
						|
** This file is part of Qt Creator
 | 
						|
**
 | 
						|
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
 | 
						|
**
 | 
						|
** Contact: Nokia Corporation (qt-info@nokia.com)
 | 
						|
**
 | 
						|
**
 | 
						|
** 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.
 | 
						|
**
 | 
						|
** 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.
 | 
						|
**
 | 
						|
** If you have questions regarding the use of this file, please contact
 | 
						|
** Nokia at qt-info@nokia.com.
 | 
						|
**
 | 
						|
**************************************************************************/
 | 
						|
 | 
						|
#ifndef DEBUGGERCONSTANTS_H
 | 
						|
#define DEBUGGERCONSTANTS_H
 | 
						|
 | 
						|
#include <QFlags>
 | 
						|
 | 
						|
namespace Debugger {
 | 
						|
namespace Constants {
 | 
						|
 | 
						|
// Debug mode
 | 
						|
const char MODE_DEBUG[]             = "Mode.Debug";
 | 
						|
 | 
						|
// Contexts
 | 
						|
const char C_DEBUGMODE[]            = "Debugger.DebugMode";
 | 
						|
const char C_CPPDEBUGGER[]          = "Gdb Debugger";
 | 
						|
const char C_QMLDEBUGGER[]          = "Qml/JavaScript Debugger";
 | 
						|
 | 
						|
// Menu Groups
 | 
						|
const char G_START_LOCAL[]          = "Debugger.Group.Start.Local";
 | 
						|
const char G_MANUAL_REMOTE[]        = "Debugger.Group.Manual.Remote";
 | 
						|
const char G_AUTOMATIC_REMOTE[]     = "Debugger.Group.Automatic.Remote";
 | 
						|
const char G_START_QML[]            = "Debugger.Group.Start.Qml";
 | 
						|
 | 
						|
// Common actions (accessed by QML inspector)
 | 
						|
const char INTERRUPT[]              = "Debugger.Interrupt";
 | 
						|
const char CONTINUE[]               = "Debugger.Continue";
 | 
						|
const char STOP[]                   = "Debugger.Stop";
 | 
						|
const char HIDDEN_STOP[]            = "Debugger.HiddenStop";
 | 
						|
const char ABORT[]                  = "Debugger.Abort";
 | 
						|
const char STEP[]                   = "Debugger.StepLine";
 | 
						|
const char STEPOUT[]                = "Debugger.StepOut";
 | 
						|
const char NEXT[]                   = "Debugger.NextLine";
 | 
						|
const char REVERSE[]                = "Debugger.ReverseDirection";
 | 
						|
const char OPERATE_BY_INSTRUCTION[] = "Debugger.OperateByInstruction";
 | 
						|
 | 
						|
// DebuggerMainWindow dock widget names
 | 
						|
const char DOCKWIDGET_BREAK[]        = "Debugger.Docks.Break";
 | 
						|
const char DOCKWIDGET_MODULES[]      = "Debugger.Docks.Modules";
 | 
						|
const char DOCKWIDGET_REGISTER[]     = "Debugger.Docks.Register";
 | 
						|
const char DOCKWIDGET_OUTPUT[]       = "Debugger.Docks.Output";
 | 
						|
const char DOCKWIDGET_SNAPSHOTS[]    = "Debugger.Docks.Snapshots";
 | 
						|
const char DOCKWIDGET_STACK[]        = "Debugger.Docks.Stack";
 | 
						|
const char DOCKWIDGET_SOURCE_FILES[] = "Debugger.Docks.SourceFiles";
 | 
						|
const char DOCKWIDGET_THREADS[]      = "Debugger.Docks.Threads";
 | 
						|
const char DOCKWIDGET_WATCHERS[]     = "Debugger.Docks.LocalsAndWatchers";
 | 
						|
 | 
						|
const char DOCKWIDGET_QML_INSPECTOR[]     = "Debugger.Docks.QmlInspector";
 | 
						|
const char DOCKWIDGET_QML_SCRIPTCONSOLE[] = "Debugger.Docks.ScriptConsole";
 | 
						|
const char DOCKWIDGET_DEFAULT_AREA[]      = "Debugger.Docks.DefaultArea";
 | 
						|
 | 
						|
} // namespace Constants
 | 
						|
 | 
						|
enum DebuggerState
 | 
						|
{
 | 
						|
    DebuggerNotReady,          // Debugger not started
 | 
						|
 | 
						|
    EngineSetupRequested,      // Engine starts
 | 
						|
    EngineSetupFailed,
 | 
						|
    EngineSetupOk,
 | 
						|
 | 
						|
    InferiorSetupRequested,
 | 
						|
    InferiorSetupFailed,
 | 
						|
    InferiorSetupOk,
 | 
						|
 | 
						|
    EngineRunRequested,
 | 
						|
    EngineRunFailed,
 | 
						|
 | 
						|
    InferiorUnrunnable,        // Used in the core dump adapter
 | 
						|
 | 
						|
    InferiorRunRequested,      // Debuggee requested to run
 | 
						|
    InferiorRunOk,             // Debuggee running
 | 
						|
    InferiorRunFailed,         // Debuggee running
 | 
						|
 | 
						|
    InferiorStopRequested,     // Debuggee running, stop requested
 | 
						|
    InferiorStopOk,            // Debuggee stopped
 | 
						|
    InferiorStopFailed,        // Debuggee not stopped, will kill debugger
 | 
						|
 | 
						|
    InferiorExitOk,
 | 
						|
 | 
						|
    InferiorShutdownRequested,
 | 
						|
    InferiorShutdownFailed,
 | 
						|
    InferiorShutdownOk,
 | 
						|
 | 
						|
    EngineShutdownRequested,
 | 
						|
    EngineShutdownFailed,
 | 
						|
    EngineShutdownOk,
 | 
						|
 | 
						|
    DebuggerFinished
 | 
						|
};
 | 
						|
 | 
						|
enum DebuggerStartMode
 | 
						|
{
 | 
						|
    NoStartMode,
 | 
						|
    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
 | 
						|
    AttachCore,            // Attach to a core file
 | 
						|
    AttachToRemoteServer,  // Attach to a running gdbserver
 | 
						|
    AttachToRemoteProcess, // Attach to a running remote process
 | 
						|
    StartRemoteProcess,    // Start and attach to a remote process
 | 
						|
    StartRemoteGdb,        // Start gdb itself remotely
 | 
						|
    StartRemoteEngine      // Start ipc guest engine on other machine
 | 
						|
};
 | 
						|
 | 
						|
enum DebuggerCapabilities
 | 
						|
{
 | 
						|
    ReverseSteppingCapability = 0x1,
 | 
						|
    SnapshotCapability = 0x2,
 | 
						|
    AutoDerefPointersCapability = 0x4,
 | 
						|
    DisassemblerCapability = 0x8,
 | 
						|
    RegisterCapability = 0x10,
 | 
						|
    ShowMemoryCapability = 0x20,
 | 
						|
    JumpToLineCapability = 0x40,
 | 
						|
    ReloadModuleCapability = 0x80,
 | 
						|
    ReloadModuleSymbolsCapability = 0x100,
 | 
						|
    BreakOnThrowAndCatchCapability = 0x200,
 | 
						|
    BreakConditionCapability = 0x400, //!< Conditional Breakpoints
 | 
						|
    BreakModuleCapability = 0x800, //!< Breakpoint specification includes module
 | 
						|
    TracePointCapability = 0x1000,
 | 
						|
    ReturnFromFunctionCapability = 0x2000,
 | 
						|
    CreateFullBacktraceCapability = 0x4000,
 | 
						|
    AddWatcherCapability = 0x8000,
 | 
						|
    AddWatcherWhileRunningCapability = 0x10000,
 | 
						|
    WatchWidgetsCapability = 0x20000,
 | 
						|
    WatchpointByAddressCapability = 0x40000,
 | 
						|
    WatchpointByExpressionCapability = 0x80000,
 | 
						|
    ShowModuleSymbolsCapability = 0x100000,
 | 
						|
    CatchCapability = 0x200000, //!< fork, vfork, syscall
 | 
						|
    OperateByInstructionCapability = 0x400000,
 | 
						|
    RunToLineCapability = 0x800000,
 | 
						|
    MemoryAddressCapability = 0x1000000
 | 
						|
};
 | 
						|
 | 
						|
enum LogChannel
 | 
						|
{
 | 
						|
    LogInput,                // Used for user input
 | 
						|
    LogMiscInput,            // Used for misc stuff in the input pane
 | 
						|
    LogOutput,
 | 
						|
    LogWarning,
 | 
						|
    LogError,
 | 
						|
    LogStatus,               // Used for status changed messages
 | 
						|
    LogTime,                 // Used for time stamp messages
 | 
						|
    LogDebug,
 | 
						|
    LogMisc,
 | 
						|
    AppOutput,               // stdout
 | 
						|
    AppError,                // stderr
 | 
						|
    AppStuff,                // (possibly) windows debug channel
 | 
						|
    StatusBar,                // LogStatus and also put to the status bar
 | 
						|
    QtMessageLogOutput,
 | 
						|
    QtMessageLogStatus
 | 
						|
};
 | 
						|
 | 
						|
enum DebuggerEngineType
 | 
						|
{
 | 
						|
    NoEngineType      = 0,
 | 
						|
    GdbEngineType     = 0x01,
 | 
						|
    ScriptEngineType  = 0x02,
 | 
						|
    CdbEngineType     = 0x04,
 | 
						|
    PdbEngineType     = 0x08,
 | 
						|
    QmlEngineType     = 0x20,
 | 
						|
    QmlCppEngineType  = 0x40,
 | 
						|
    LldbEngineType  = 0x80,
 | 
						|
    AllEngineTypes = GdbEngineType
 | 
						|
        | ScriptEngineType
 | 
						|
        | CdbEngineType
 | 
						|
        | PdbEngineType
 | 
						|
        | QmlEngineType
 | 
						|
        | QmlCppEngineType
 | 
						|
        | LldbEngineType
 | 
						|
};
 | 
						|
 | 
						|
enum DebuggerLanguage
 | 
						|
{
 | 
						|
    AnyLanguage       = 0x0,
 | 
						|
    CppLanguage      = 0x1,
 | 
						|
    QmlLanguage      = 0x2
 | 
						|
};
 | 
						|
Q_DECLARE_FLAGS(DebuggerLanguages, DebuggerLanguage)
 | 
						|
 | 
						|
} // namespace Debugger
 | 
						|
 | 
						|
#endif // DEBUGGERCONSTANTS_H
 |