GCC Middle and Back End API Reference
vmsdbg.h
Go to the documentation of this file.
1/* Definitions for the data structures and codes used in VMS debugging.
2 Copyright (C) 2001-2024 Free Software Foundation, Inc.
3
4This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify it under
7the terms of the GNU General Public License as published by the Free
8Software Foundation; either version 3, or (at your option) any later
9version.
10
11GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or
13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14for more details.
15
16You should have received a copy of the GNU General Public License
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
19
20#ifndef GCC_VMSDBG_H
21#define GCC_VMSDBG_H 1
22
23/* We define types and constants used in VMS Debug output. Note that the
24 structs only approximate the output that is written. We write the output
25 explicitly, field by field. This output would only agree with the
26 structs in this file if no padding were done. The sizes after each
27 struct are the size actually written, which is usually smaller than the
28 size of the struct. */
29
30/* Header type codes. */
37
38/* Header. */
39
40typedef struct _DST_HEADER
41{
42 union
43 {
44 unsigned short int dst_w_length;
45 unsigned short int dst_x_length;
47 union
48 {
49 ENUM_BITFIELD (_DST_TYPE) dst_w_type : 16;
50 ENUM_BITFIELD (_DST_TYPE) dst_x_type : 16;
53#define DST_K_DST_HEADER_SIZE sizeof 4
54
55/* Language type codes. */
58
59/* Module header (a module is the result of a single compilation). */
60
76#define DST_K_MODBEG_SIZE 15
77
78/* Module trailer. */
79
80typedef struct _DST_MB_TRLR
81{
82 unsigned char dst_b_compiler;
84
85#define DST_K_MB_TRLR_SIZE 1
86
87#define DST_K_VERSION_MAJOR 1
88#define DST_K_VERSION_MINOR 13
89
94#define DST_K_MODEND_SIZE sizeof 4
95
96/* Routine header. */
97
113#define DST_K_RTNBEG_SIZE 14
114
115/* Routine trailer */
116
123#define DST_K_RTNEND_SIZE 9
124
125/* Block header. */
126
134#define DST_K_BLKBEG_SIZE 10
135
136/* Block trailer. */
137
144#define DST_K_BLKEND_SIZE 9
145
146/* Line number header. */
147
152#define DST_K_LINE_NUM_HEADER_SIZE 4
153
154/* PC to Line number correlation. */
155
166
167/* PC and Line number correlation codes. */
168
169#define DST_K_PCLINE_COMMANDS_SIZE 5
170#define DST_K_PCLINE_COMMANDS_SIZE_MIN 2
171#define DST_K_PCLINE_COMMANDS_SIZE_MAX 5
172#define DST_K_DELTA_PC_LOW -128
173#define DST_K_DELTA_PC_HIGH 0
174#define DST_K_DELTA_PC_W 1
175#define DST_K_INCR_LINUM 2
176#define DST_K_INCR_LINUM_W 3
177#define DST_K_SET_LINUM 9
178#define DST_K_SET_ABS_PC 16
179#define DST_K_DELTA_PC_L 17
180#define DST_K_INCR_LINUM_L 18
181#define DST_K_SET_LINUM_B 19
182#define DST_K_SET_LINUM_L 20
183
184/* Source file correlation header. */
185
190#define DST_K_SOURCE_CORR_HEADER_SIZE 4
191
192/* Source file correlation codes. */
193
194#define DST_K_SRC_DECLFILE 1
195#define DST_K_SRC_SETFILE 2
196#define DST_K_SRC_SETREC_L 3
197#define DST_K_SRC_SETREC_W 4
198#define DST_K_SRC_SETLNUM_L 5
199#define DST_K_SRC_SETLNUM_W 6
200#define DST_K_SRC_INCRLNUM_B 7
201#define DST_K_SRC_DEFLINES_W 10
202#define DST_K_SRC_DEFLINES_B 11
203#define DST_K_SRC_FORMFEED 16
204#define DST_K_SRC_MIN_CMD 1
205#define DST_K_SRC_MAX_CMD 16
206
207/* Source file header. */
208
209typedef struct _DST_SRC_COMMAND
210{
211 unsigned char dst_b_src_command;
212 union
213 {
214 struct
215 {
216 unsigned char dst_b_src_df_length;
217 unsigned char dst_b_src_df_flags;
218 unsigned short int dst_w_src_df_fileid;
221 unsigned short int dst_w_src_df_rms_ffb;
222 unsigned char dst_b_src_df_rms_rfo;
225 unsigned int dst_l_src_unslong;
226 unsigned short int dst_w_src_unsword;
227 unsigned char dst_b_src_unsbyte;
230#define DST_K_SRC_COMMAND_SIZE 21
231
232/* Source file trailer. */
233
238#define DST_K_SRC_CMDTRLR_SIZE 1
239
240/* Prolog header. */
241
247#define DST_K_PROLOG_SIZE 8
248
249#endif /* GCC_VMSDBG_H */
Definition vmsdbg.h:128
unsigned char dst_b_blkbeg_unused
Definition vmsdbg.h:130
DST_HEADER dst_a_blkbeg_header
Definition vmsdbg.h:129
int * dst_l_blkbeg_address
Definition vmsdbg.h:131
unsigned char dst_b_blkbeg_name
Definition vmsdbg.h:132
Definition vmsdbg.h:139
unsigned char dst_b_blkend_unused
Definition vmsdbg.h:141
DST_HEADER dst_a_blkend_header
Definition vmsdbg.h:140
unsigned int dst_l_blkend_size
Definition vmsdbg.h:142
Definition vmsdbg.h:41
unsigned short int dst_x_length
Definition vmsdbg.h:45
union _DST_HEADER::@93 dst__header_type
enum _DST_TYPE dst_w_type
Definition vmsdbg.h:49
enum _DST_TYPE dst_x_type
Definition vmsdbg.h:50
unsigned short int dst_w_length
Definition vmsdbg.h:44
union _DST_HEADER::@92 dst__header_length
Definition vmsdbg.h:149
DST_HEADER dst_a_line_num_header
Definition vmsdbg.h:150
Definition vmsdbg.h:81
unsigned char dst_b_compiler
Definition vmsdbg.h:82
Definition vmsdbg.h:62
DST_HEADER dst_a_modbeg_header
Definition vmsdbg.h:63
unsigned short int dst_w_version_minor
Definition vmsdbg.h:73
unsigned char dst_b_modbeg_name
Definition vmsdbg.h:74
unsigned short int dst_w_version_major
Definition vmsdbg.h:72
unsigned char dst_b_modbeg_unused
Definition vmsdbg.h:70
unsigned dst_v_modbeg_hide
Definition vmsdbg.h:66
struct _DST_MODULE_BEGIN::@94 dst_b_modbeg_flags
unsigned dst_v_modbeg_unused
Definition vmsdbg.h:68
unsigned dst_v_modbeg_version
Definition vmsdbg.h:67
DST_LANGUAGE dst_l_modbeg_language
Definition vmsdbg.h:71
Definition vmsdbg.h:91
DST_HEADER dst_a_modend_header
Definition vmsdbg.h:92
Definition vmsdbg.h:157
unsigned short int dst_w_pcline_unsword
Definition vmsdbg.h:162
unsigned char dst_b_pcline_unsbyte
Definition vmsdbg.h:163
unsigned int dst_l_pcline_unslong
Definition vmsdbg.h:161
union _DST_PCLINE_COMMANDS::@96 dst_a_pcline_access_fields
char dst_b_pcline_command
Definition vmsdbg.h:158
Definition vmsdbg.h:243
unsigned int dst_l_prolog_bkpt_addr
Definition vmsdbg.h:245
DST_HEADER dst_a_prolog_header
Definition vmsdbg.h:244
Definition vmsdbg.h:99
DST_HEADER dst_a_rtnbeg_header
Definition vmsdbg.h:100
unsigned dst_v_rtnbeg_inlined
Definition vmsdbg.h:106
unsigned dst_v_rtnbeg_unalloc
Definition vmsdbg.h:104
unsigned dst_v_rtnbeg_unused
Definition vmsdbg.h:103
int * dst_l_rtnbeg_address
Definition vmsdbg.h:109
unsigned char dst_b_rtnbeg_name
Definition vmsdbg.h:111
unsigned dst_v_rtnbeg_no_call
Definition vmsdbg.h:107
unsigned dst_v_rtnbeg_prototype
Definition vmsdbg.h:105
int * dst_l_rtnbeg_pd_address
Definition vmsdbg.h:110
struct _DST_ROUTINE_BEGIN::@95 dst_b_rtnbeg_flags
Definition vmsdbg.h:118
char dst_b_rtnend_unused
Definition vmsdbg.h:120
unsigned int dst_l_rtnend_size
Definition vmsdbg.h:121
DST_HEADER dst_a_rtnend_header
Definition vmsdbg.h:119
Definition vmsdbg.h:187
DST_HEADER dst_a_source_corr_header
Definition vmsdbg.h:188
Definition vmsdbg.h:235
unsigned char dst_b_src_df_libmodname
Definition vmsdbg.h:236
Definition vmsdbg.h:210
unsigned int dst_l_src_unslong
Definition vmsdbg.h:225
unsigned char dst_b_src_df_flags
Definition vmsdbg.h:217
unsigned short int dst_w_src_unsword
Definition vmsdbg.h:226
struct _DST_SRC_COMMAND::@97::@98 dst_a_src_decl_src
unsigned int dst_l_src_df_rms_ebk
Definition vmsdbg.h:220
unsigned short int dst_w_src_df_fileid
Definition vmsdbg.h:218
unsigned char dst_b_src_df_rms_rfo
Definition vmsdbg.h:222
int64_t dst_q_src_df_rms_cdt
Definition vmsdbg.h:219
unsigned char dst_b_src_df_filename
Definition vmsdbg.h:223
unsigned short int dst_w_src_df_rms_ffb
Definition vmsdbg.h:221
unsigned char dst_b_src_df_length
Definition vmsdbg.h:216
union _DST_SRC_COMMAND::@97 dst_a_src_cmd_fields
unsigned char dst_b_src_unsbyte
Definition vmsdbg.h:227
unsigned char dst_b_src_command
Definition vmsdbg.h:211
struct _DST_PROLOG DST_PROLOG
struct _DST_ROUTINE_END DST_ROUTINE_END
struct _DST_MODULE_END DST_MODULE_END
struct _DST_HEADER DST_HEADER
struct _DST_ROUTINE_BEGIN DST_ROUTINE_BEGIN
enum _DST_LANGUAGE DST_LANGUAGE
_DST_LANGUAGE
Definition vmsdbg.h:56
@ DST_K_FORTRAN
Definition vmsdbg.h:56
@ DST_K_ADA
Definition vmsdbg.h:56
@ DST_K_C
Definition vmsdbg.h:56
@ DST_K_UNKNOWN
Definition vmsdbg.h:57
@ DST_K_CXX
Definition vmsdbg.h:57
struct _DST_LINE_NUM_HEADER DST_LINE_NUM_HEADER
struct _DST_BLOCK_BEGIN DST_BLOCK_BEGIN
struct _DST_PCLINE_COMMANDS DST_PCLINE_COMMANDS
struct _DST_MB_TRLR DST_MB_TRLR
struct _DST_SOURCE_CORR DST_SOURCE_CORR
struct _DST_SRC_CMDTRLR DST_SRC_CMDTRLR
_DST_TYPE
Definition vmsdbg.h:31
@ DST_K_BLKEND
Definition vmsdbg.h:33
@ DST_K_SOURCE
Definition vmsdbg.h:32
@ DST_K_TBG
Definition vmsdbg.h:31
@ DST_K_MODEND
Definition vmsdbg.h:35
@ DST_K_PROLOG
Definition vmsdbg.h:32
@ DST_K_BLKBEG
Definition vmsdbg.h:33
@ DST_K_MODBEG
Definition vmsdbg.h:34
@ DST_K_LINE_NUM
Definition vmsdbg.h:34
@ DST_K_RTNEND
Definition vmsdbg.h:36
@ DST_K_RTNBEG
Definition vmsdbg.h:35
struct _DST_BLOCK_END DST_BLOCK_END
struct _DST_SRC_COMMAND DST_SRC_COMMAND
enum _DST_TYPE DST_DTYPE
struct _DST_MODULE_BEGIN DST_MODULE_BEGIN