forked from qt-creator/qt-creator
Xcode 16 added special commands for that to lldb: - `device select <uuid>` switches the debugging to that device - `device process attach <options>` attaches the debugger to a running app So we start the application in "waiting state" with the --start-stopped command line parameter, then start the debugger and use these commands to attach. Integration into the lldb bridge needs to directly run the new commands and attach, to get access to the SBTarget. Task-number: QTCREATORBUG-29895 Fixes: QTCREATORBUG-32106 Change-Id: I91abb35c689cbd4d2d9da53afb5a12ddc23e1e9a Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
132 lines
3.3 KiB
Python
132 lines
3.3 KiB
Python
# Copyright (C) 2016 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
# Debugger start modes. Keep in sync with DebuggerStartMode in debuggerconstants.h
|
|
|
|
|
|
# MT: Why does this not match (anymore?) to debuggerconstants.h : DebuggerStartMode ?
|
|
class DebuggerStartMode():
|
|
(
|
|
NoStartMode,
|
|
StartInternal,
|
|
StartExternal,
|
|
AttachExternal,
|
|
AttachCrashedExternal,
|
|
AttachCore,
|
|
AttachToRemoteServer,
|
|
AttachToRemoteProcess,
|
|
AttachToQmlServer,
|
|
StartRemoteProcess,
|
|
AttachToIosDevice
|
|
) = range(0, 11)
|
|
|
|
|
|
# Known special formats. Keep in sync with DisplayFormat in debuggerprotocol.h
|
|
class DisplayFormat():
|
|
(
|
|
Automatic,
|
|
Raw,
|
|
Simple,
|
|
Enhanced,
|
|
Separate,
|
|
Latin1String,
|
|
SeparateLatin1String,
|
|
Utf8String,
|
|
SeparateUtf8String,
|
|
Local8BitString,
|
|
Utf16String,
|
|
Ucs4String,
|
|
Array10,
|
|
Array100,
|
|
Array1000,
|
|
Array10000,
|
|
ArrayPlot,
|
|
CompactMap,
|
|
DirectQListStorage,
|
|
IndirectQListStorage,
|
|
) = range(0, 20)
|
|
|
|
|
|
# Breakpoints. Keep synchronized with BreakpointType in breakpoint.h
|
|
class BreakpointType():
|
|
(
|
|
UnknownType,
|
|
BreakpointByFileAndLine,
|
|
BreakpointByFunction,
|
|
BreakpointByAddress,
|
|
BreakpointAtThrow,
|
|
BreakpointAtCatch,
|
|
BreakpointAtMain,
|
|
BreakpointAtFork,
|
|
BreakpointAtExec,
|
|
BreakpointAtSysCall,
|
|
WatchpointAtAddress,
|
|
WatchpointAtExpression,
|
|
BreakpointOnQmlSignalEmit,
|
|
BreakpointAtJavaScriptThrow,
|
|
) = range(0, 14)
|
|
|
|
|
|
# Internal codes for types. Keep in sync with cdbextensions pytype.cpp
|
|
class TypeCode():
|
|
(
|
|
Typedef,
|
|
Struct,
|
|
Void,
|
|
Integral,
|
|
Float,
|
|
Enum,
|
|
Pointer,
|
|
Array,
|
|
Complex,
|
|
Reference,
|
|
Function,
|
|
MemberPointer,
|
|
FortranString,
|
|
Unresolvable,
|
|
Bitfield,
|
|
RValueReference,
|
|
) = range(0, 16)
|
|
|
|
|
|
# Internal codes for logging channels. Keep in sync woth debuggerconstants.h
|
|
class 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
|
|
ConsoleOutput # Used to output to console
|
|
) = range(0, 14)
|
|
|
|
|
|
def isIntegralTypeName(name):
|
|
return name in (
|
|
"int",
|
|
"unsigned int",
|
|
"signed int",
|
|
"short",
|
|
"unsigned short",
|
|
"long",
|
|
"unsigned long",
|
|
"long long",
|
|
"unsigned long long",
|
|
"char",
|
|
"signed char",
|
|
"unsigned char",
|
|
"bool",
|
|
)
|
|
|
|
|
|
def isFloatingPointTypeName(name):
|
|
return name in ("float", "double", "long double")
|