aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/debugger/utils.py
blob: fe2e558e7113347c83115ff23db387c85d4c8969 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 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


class DebuggerStartMode():
    (
        NoStartMode,
        StartInternal,
        StartExternal,
        AttachExternal,
        AttachCrashedExternal,
        AttachCore,
        AttachToRemoteServer,
        AttachToRemoteProcess,
        StartRemoteProcess,
    ) = range(0, 9)


# 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")