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 * cordbpriv.h -- header file for private Debugger data shared by various
7 * Runtime components.
8 * ------------------------------------------------------------------------- */
9
10#ifndef _cordbpriv_h_
11#define _cordbpriv_h_
12
13#include "corhdr.h"
14#include <unknwn.h>
15
16//
17// Initial value for EnC versions
18//
19#define CorDB_DEFAULT_ENC_FUNCTION_VERSION 1
20#define CorDB_UNKNOWN_ENC_FUNCTION_VERSION ((SIZE_T)(-1))
21
22enum DebuggerLaunchSetting
23{
24 DLS_ASK_USER = 0,
25 DLS_ATTACH_DEBUGGER = 1
26};
27
28
29//
30// Flags used to control the Runtime's debugging modes. These indicate to
31// the Runtime that it needs to load the Runtime Controller, track data
32// during JIT's, etc.
33//
34enum DebuggerControlFlag
35{
36 DBCF_NORMAL_OPERATION = 0x0000,
37
38 DBCF_USER_MASK = 0x00FF,
39 DBCF_GENERATE_DEBUG_CODE = 0x0001,
40 DBCF_ALLOW_JIT_OPT = 0x0008,
41 DBCF_PROFILER_ENABLED = 0x0020,
42// DBCF_ACTIVATE_REMOTE_DEBUGGING = 0x0040, Deprecated. DO NOT USE
43
44 DBCF_INTERNAL_MASK = 0xFF00,
45 DBCF_PENDING_ATTACH = 0x0100,
46 DBCF_ATTACHED = 0x0200,
47 DBCF_FIBERMODE = 0x0400
48};
49
50//
51// Flags used to control the debuggable state of modules and
52// assemblies.
53//
54enum DebuggerAssemblyControlFlags
55{
56 DACF_NONE = 0x00,
57 DACF_USER_OVERRIDE = 0x01,
58 DACF_ALLOW_JIT_OPTS = 0x02,
59 DACF_OBSOLETE_TRACK_JIT_INFO = 0x04, // obsolete in V2.0, we're always tracking.
60 DACF_ENC_ENABLED = 0x08,
61 DACF_IGNORE_PDBS = 0x20,
62 DACF_CONTROL_FLAGS_MASK = 0x2F,
63
64 DACF_PDBS_COPIED = 0x10,
65 DACF_MISC_FLAGS_MASK = 0x10,
66};
67
68#endif /* _cordbpriv_h_ */
69