Merge pull request #13605 from BruceForstall/ScopeEnvSettings
[platform/upstream/coreclr.git] / src / debug / inc / dbgipceventtypes.h
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4
5 // 
6 // Events that go both ways
7 IPC_EVENT_TYPE0(DB_IPCE_INVALID_EVENT                ,0x0000)
8 IPC_EVENT_TYPE0(DB_IPCE_TYPE_MASK                    ,0x0FFF)
9
10 // Some rules:
11 // 1. Type0 is for marking sections in the id range. 
12 //    Type1 is for events that go L->R, Type2 is for events that go R<-L.
13 // 2. All non-type 0 events should have a unique identifier & value
14 // 3. All type 1 events values should be in range [DB_IPCE_RUNTIME_FIRST, DB_IPCE_RUNTIME_LAST)
15 //    All type 2 events values should be in range [DB_IPCE_DEBUGGER_FIRST, DB_IPCE_DEBUGGER_LAST)
16 // 4. All event values should be monotonically increasing, though we can skip values.
17 // 5. All values should be a subset of the bits specified by DB_IPCE_TYPE_MASK.
18 //
19 // These rules are enforced by a bunch of compile time checks (C_ASSERT) in 
20 // the function DoCompileTimeCheckOnDbgIpcEventTypes.
21 // If you get compiler errors in this file, you are probably violating the rules above.
22
23 // Events that travel from the RC to the DI (Left to Right)
24 IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_FIRST                ,0x0100)   // change to TYPE0 because it is not really an event
25 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT                   ,0x0100)
26 IPC_EVENT_TYPE1(DB_IPCE_SYNC_COMPLETE                ,0x0102)
27 IPC_EVENT_TYPE1(DB_IPCE_THREAD_ATTACH                ,0x0103)
28 IPC_EVENT_TYPE1(DB_IPCE_THREAD_DETACH                ,0x0104)
29 IPC_EVENT_TYPE1(DB_IPCE_LOAD_MODULE                  ,0x0105)
30 IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_MODULE                ,0x0106)
31 IPC_EVENT_TYPE1(DB_IPCE_LOAD_CLASS                   ,0x0107)
32 IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_CLASS                 ,0x0108)
33 IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION                    ,0x0109)
34 IPC_EVENT_TYPE1(DB_IPCE_UNHANDLED_EXCEPTION          ,0x010A)
35 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_ADD_RESULT        ,0x010D)
36 IPC_EVENT_TYPE1(DB_IPCE_STEP_RESULT                  ,0x010E)
37 IPC_EVENT_TYPE1(DB_IPCE_STEP_COMPLETE                ,0x010F)
38 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_REMOVE_RESULT     ,0x0111)
39 IPC_EVENT_TYPE1(DB_IPCE_GET_BUFFER_RESULT            ,0x0115)
40 IPC_EVENT_TYPE1(DB_IPCE_RELEASE_BUFFER_RESULT        ,0x0116)
41 IPC_EVENT_TYPE1(DB_IPCE_ENC_ADD_FIELD                ,0x0117)
42 IPC_EVENT_TYPE1(DB_IPCE_APPLY_CHANGES_RESULT         ,0x0118)
43 IPC_EVENT_TYPE1(DB_IPCE_CUSTOM_NOTIFICATION          ,0x011B)
44 IPC_EVENT_TYPE1(DB_IPCE_USER_BREAKPOINT              ,0x011C)
45 IPC_EVENT_TYPE1(DB_IPCE_FIRST_LOG_MESSAGE            ,0x011D)
46 // DB_IPCE_CONTINUED_LOG_MESSAGE = 0x11E, used to be here in v1.1, 
47 // But we've removed that remove the v2.0 protocol
48 IPC_EVENT_TYPE1(DB_IPCE_LOGSWITCH_SET_MESSAGE        ,0x011F)
49 IPC_EVENT_TYPE1(DB_IPCE_CREATE_APP_DOMAIN            ,0x0120)
50 IPC_EVENT_TYPE1(DB_IPCE_EXIT_APP_DOMAIN              ,0x0121)
51 IPC_EVENT_TYPE1(DB_IPCE_LOAD_ASSEMBLY                ,0x0122)
52 IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_ASSEMBLY              ,0x0123)
53 IPC_EVENT_TYPE1(DB_IPCE_SET_DEBUG_STATE_RESULT       ,0x0124)
54 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_SETUP_RESULT       ,0x0125)
55 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_COMPLETE           ,0x0126)
56 IPC_EVENT_TYPE1(DB_IPCE_SET_REFERENCE_RESULT         ,0x0127)
57 IPC_EVENT_TYPE1(DB_IPCE_APP_DOMAIN_NAME_RESULT       ,0x0128)
58 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_ABORT_RESULT       ,0x0129)
59 IPC_EVENT_TYPE1(DB_IPCE_NAME_CHANGE                  ,0x012a)
60 IPC_EVENT_TYPE1(DB_IPCE_UPDATE_MODULE_SYMS           ,0x012c)
61 IPC_EVENT_TYPE1(DB_IPCE_CONTROL_C_EVENT              ,0x012f)
62 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_CLEANUP_RESULT     ,0x0130)
63 IPC_EVENT_TYPE1(DB_IPCE_ENC_REMAP                    ,0x0131)
64 IPC_EVENT_TYPE1(DB_IPCE_SET_VALUE_CLASS_RESULT       ,0x0133)
65 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_SET_ERROR         ,0x0134)
66 IPC_EVENT_TYPE1(DB_IPCE_ENC_UPDATE_FUNCTION          ,0x0137)
67 IPC_EVENT_TYPE1(DB_IPCE_SET_METHOD_JMC_STATUS_RESULT ,0x013a)
68 IPC_EVENT_TYPE1(DB_IPCE_GET_METHOD_JMC_STATUS_RESULT ,0x013b)
69 IPC_EVENT_TYPE1(DB_IPCE_SET_MODULE_JMC_STATUS_RESULT ,0x013c)
70 IPC_EVENT_TYPE1(DB_IPCE_GET_THREAD_FOR_TASKID_RESULT ,0x013d)
71 IPC_EVENT_TYPE1(DB_IPCE_CREATE_CONNECTION            ,0x0141)
72 IPC_EVENT_TYPE1(DB_IPCE_DESTROY_CONNECTION           ,0x0142)
73 IPC_EVENT_TYPE1(DB_IPCE_CHANGE_CONNECTION            ,0x0143)
74 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_RUDE_ABORT_RESULT  ,0x0144)
75 IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION_CALLBACK2          ,0x0147)
76 IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION_UNWIND             ,0x0148)
77 IPC_EVENT_TYPE1(DB_IPCE_INTERCEPT_EXCEPTION_RESULT   ,0x0149)
78 IPC_EVENT_TYPE1(DB_IPCE_CREATE_HANDLE_RESULT         ,0x014A)
79 IPC_EVENT_TYPE1(DB_IPCE_INTERCEPT_EXCEPTION_COMPLETE ,0x014B)
80 IPC_EVENT_TYPE1(DB_IPCE_ENC_REMAP_COMPLETE           ,0x014C)
81 IPC_EVENT_TYPE1(DB_IPCE_CREATE_PROCESS               ,0x014D)
82 IPC_EVENT_TYPE1(DB_IPCE_ENC_ADD_FUNCTION             ,0x014E)
83 IPC_EVENT_TYPE1(DB_IPCE_GET_NGEN_COMPILER_FLAGS_RESULT,0x0151)
84 IPC_EVENT_TYPE1(DB_IPCE_SET_NGEN_COMPILER_FLAGS_RESULT,0x0152)
85 IPC_EVENT_TYPE1(DB_IPCE_MDA_NOTIFICATION             ,0x0156)
86 IPC_EVENT_TYPE1(DB_IPCE_GET_GCHANDLE_INFO_RESULT     ,0x0157)
87 IPC_EVENT_TYPE1(DB_IPCE_TEST_CRST                    ,0x0158)
88 IPC_EVENT_TYPE1(DB_IPCE_TEST_RWLOCK                  ,0x0159)
89 IPC_EVENT_TYPE1(DB_IPCE_LEFTSIDE_STARTUP             ,0x015C)
90 IPC_EVENT_TYPE1(DB_IPCE_METADATA_UPDATE              ,0x015D)
91 IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_1_RESULT,0x015E)
92 IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_2_RESULT,0x015F)
93 IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_LAST                 ,0x0160)   // The last event from runtime
94
95
96
97 // Events that travel from the DI to the RC (Right to Left)
98 IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_FIRST               ,0x0200)  // change to TYPE0 because it is not really an event
99 IPC_EVENT_TYPE2(DB_IPCE_ASYNC_BREAK                  ,0x0200)
100 IPC_EVENT_TYPE2(DB_IPCE_CONTINUE                     ,0x0201)
101 IPC_EVENT_TYPE2(DB_IPCE_LIST_THREADS                 ,0x0202)
102 IPC_EVENT_TYPE2(DB_IPCE_SET_IP                       ,0x0205)
103 IPC_EVENT_TYPE2(DB_IPCE_SUSPEND_THREAD               ,0x0206)
104 IPC_EVENT_TYPE2(DB_IPCE_RESUME_THREAD                ,0x0207)
105 IPC_EVENT_TYPE2(DB_IPCE_BREAKPOINT_ADD               ,0x0209)
106 IPC_EVENT_TYPE2(DB_IPCE_BREAKPOINT_REMOVE            ,0x020A)
107 IPC_EVENT_TYPE2(DB_IPCE_STEP_CANCEL                  ,0x020B)
108 IPC_EVENT_TYPE2(DB_IPCE_STEP                         ,0x020C)
109 IPC_EVENT_TYPE2(DB_IPCE_STEP_OUT                     ,0x020D)
110 IPC_EVENT_TYPE2(DB_IPCE_GET_BUFFER                   ,0x0211)
111 IPC_EVENT_TYPE2(DB_IPCE_RELEASE_BUFFER               ,0x0212)
112 IPC_EVENT_TYPE2(DB_IPCE_SET_CLASS_LOAD_FLAG          ,0x0217)
113 IPC_EVENT_TYPE2(DB_IPCE_CONTINUE_EXCEPTION           ,0x0219)
114 IPC_EVENT_TYPE2(DB_IPCE_ATTACHING                    ,0x021A)
115 IPC_EVENT_TYPE2(DB_IPCE_APPLY_CHANGES                ,0x021B)
116 IPC_EVENT_TYPE2(DB_IPCE_SET_NGEN_COMPILER_FLAGS      ,0x021F)
117 IPC_EVENT_TYPE2(DB_IPCE_GET_NGEN_COMPILER_FLAGS      ,0x0220)
118 IPC_EVENT_TYPE2(DB_IPCE_IS_TRANSITION_STUB           ,0x0221)
119 IPC_EVENT_TYPE2(DB_IPCE_IS_TRANSITION_STUB_RESULT    ,0x0222)
120 IPC_EVENT_TYPE2(DB_IPCE_MODIFY_LOGSWITCH             ,0x0223)
121 IPC_EVENT_TYPE2(DB_IPCE_ENABLE_LOG_MESSAGES          ,0x0224)
122 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL                    ,0x0225)
123 IPC_EVENT_TYPE2(DB_IPCE_SET_REFERENCE                ,0x0228)
124 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_ABORT              ,0x022c)
125 IPC_EVENT_TYPE2(DB_IPCE_DETACH_FROM_PROCESS          ,0x022f)
126 IPC_EVENT_TYPE2(DB_IPCE_CONTROL_C_EVENT_RESULT       ,0x0230)
127 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_CLEANUP            ,0x0231)
128 IPC_EVENT_TYPE2(DB_IPCE_SET_ALL_DEBUG_STATE          ,0x0232)
129 IPC_EVENT_TYPE2(DB_IPCE_SET_VALUE_CLASS              ,0x0234)
130 IPC_EVENT_TYPE2(DB_IPCE_SET_METHOD_JMC_STATUS        ,0x023a)
131 IPC_EVENT_TYPE2(DB_IPCE_GET_METHOD_JMC_STATUS        ,0x023b)
132 IPC_EVENT_TYPE2(DB_IPCE_SET_MODULE_JMC_STATUS        ,0x023c)
133 IPC_EVENT_TYPE2(DB_IPCE_GET_THREAD_FOR_TASKID        ,0x023d)
134 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_RUDE_ABORT         ,0x0241)
135 IPC_EVENT_TYPE2(DB_IPCE_CREATE_HANDLE                ,0x0244)
136 IPC_EVENT_TYPE2(DB_IPCE_DISPOSE_HANDLE               ,0x0245)
137 IPC_EVENT_TYPE2(DB_IPCE_INTERCEPT_EXCEPTION          ,0x0246)
138 IPC_EVENT_TYPE2(DB_IPCE_DEBUGGER_INVALID             ,0x0249)   // An invalid event type
139 IPC_EVENT_TYPE2(DB_IPCE_GET_GCHANDLE_INFO            ,0x0251)
140 IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_1    ,0x0256)
141 IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_2    ,0x0257)
142 IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_LAST                ,0x0258)   // The last event from the debugger
143