summaryrefslogtreecommitdiff
path: root/gcc/vmsdbg.h
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-02 14:38:07 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-02 14:38:07 +0000
commit8d60d2bc69bbdca290a0014c9d03326983f331f5 (patch)
treee42e03bca7b1d30a4e1957a95213853fa5c9a849 /gcc/vmsdbg.h
parent27fbf3a7c1556f621ab3f6f1ff95d38000e70479 (diff)
downloadgcc-8d60d2bc69bbdca290a0014c9d03326983f331f5.tar.gz
* config/alpha/vms.h (VMS_DEBUGGING_INFO): New macro.
(PREFERRED_DEBUGGING_TYPE): Define as VMS_AND_DWARF2_DEBUG. (ASM_SPEC): Don't redefine. (OPTIMIZATION_OPTIONS, OVERRIDE_OPTIONS, LINK_SPEC): Define. * config/alpha/t-vms (EXTRA_PARTS): Use; add rule for vms-dwarf2.asm. * config/alpha/vms-dwarf2.asm: New file. * Makefile.in (OBJS): Add vmsdbgout.c and its rule. * c-lex.c (init_c_lex): Test for VMS_AND_DWARF2_DEBUG. * debug.h (gcc_debug_hooks): Add vmsdbg_debug_hooks. (vmsdbgout_after_prologue): New declaration. * defaults.h (VMS_DEBUGGING_INFO): Add to PREFERRED_DEBUGGING_TYPE. * dwarf2.h (dwarf_attribute): New DW_AT_VMS_rtnbeg_pd_address. * dwarf2out.c (dwarf2out_do_frame): Test for VMS_AND_DWARF2_DEBUG. (dwarf2out_frame_finish): Test for VMS_AND_DWARF2_DEBUG. (dwarf_attr_name): Use DW_AT_VMS_rtnbeg_pd_address. (add_name_and_src_coords_attributes): Test VMS_DEBUGGING_INFO * final.c (final_start_function): Test for VMS_AND_DWARF2_DEBUG. Test VMS_DEBUGGING_INFO. (final_end_function): Test for VMS_AND_DWARF2_DEBUG. (final_scan_insn): Test for VMS_AND_DWARF2_DEBUG and VMS_DEBUG. * flags.h (debug_info_type): Add VMS_DEBUG and VMS_AND_DWARF2_DEBUG. * toplev.c (compile_file): Test VMS_DEBUGGING_INFO, VMS_DEBUG, and VMS_AND_DWARF2_DEBUG. (rest_of_type_compilation): Test for VMS_AND_DWARF2_DEBUG. (decode_g_option): Add "vms" to debug_type_names. (process_options): Set vmsdbg_debug_hooks if -gvms. (lang_independent_init): Emit line number for VMS unless -g0. * tree.c: (build_complex_type): Test for VMS_AND_DWARF2_DEBUG. * vmsdbg.h, vmsdbgout.c: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47532 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/vmsdbg.h')
-rw-r--r--gcc/vmsdbg.h173
1 files changed, 173 insertions, 0 deletions
diff --git a/gcc/vmsdbg.h b/gcc/vmsdbg.h
new file mode 100644
index 00000000000..65147a6cf5d
--- /dev/null
+++ b/gcc/vmsdbg.h
@@ -0,0 +1,173 @@
+/* This file contains definitions for the data structures and codes used in
+ VMS debugging information. */
+
+#ifndef VMSDBG_H
+#define VMSDBG_H 1
+
+typedef unsigned short int DST_DTYPE;
+#define DST_K_SOURCE 155
+#define DST_K_PROLOG 162
+#define DST_K_BLKBEG 176
+#define DST_K_BLKEND 177
+#define DST_K_LINE_NUM 185
+#define DST_K_MODBEG 188
+#define DST_K_MODEND 189
+#define DST_K_RTNBEG 190
+#define DST_K_RTNEND 191
+
+typedef struct _DST_HEADER {
+ union {
+ unsigned short int dst_w_length;
+ unsigned short int dst_x_length;
+ } dst__header_length;
+ union {
+ DST_DTYPE dst_w_type;
+ DST_DTYPE dst_x_type;
+ } dst__header_type;
+} DST_HEADER;
+#define DST_K_DST_HEADER_SIZE 4
+
+typedef unsigned int DST_LANGUAGE;
+#define DST_K_FORTRAN 1
+#define DST_K_C 7
+#define DST_K_ADA 9
+#define DST_K_UNKNOWN 10
+#define DST_K_CXX 15
+typedef struct _DST_MODULE_BEGIN {
+ DST_HEADER dst_a_modbeg_header;
+ struct {
+ unsigned dst_v_modbeg_hide : 1;
+ unsigned dst_v_modbeg_version : 1;
+ unsigned dst_v_modbeg_unused : 6;
+ } dst_b_modbeg_flags;
+ unsigned char dst_b_modbeg_unused;
+ DST_LANGUAGE dst_l_modbeg_language;
+ unsigned short int dst_w_version_major;
+ unsigned short int dst_w_version_minor;
+ unsigned char dst_b_modbeg_name;
+} DST_MODULE_BEGIN;
+#define DST_K_MODBEG_SIZE 15
+
+typedef struct _DST_MB_TRLR {
+ unsigned char dst_b_compiler;
+} DST_MB_TRLR;
+#define DST_K_MB_TRLR_SIZE 1
+#define DST_K_VERSION_MAJOR 1
+#define DST_K_VERSION_MINOR 13
+typedef struct _DST_MODULE_END {
+ DST_HEADER dst_a_modend_header;
+} DST_MODULE_END;
+#define DST_K_MODEND_SIZE 4
+typedef struct _DST_ROUTINE_BEGIN {
+ DST_HEADER dst_a_rtnbeg_header;
+ struct {
+ unsigned dst_v_rtnbeg_unused : 4;
+ unsigned dst_v_rtnbeg_unalloc : 1;
+ unsigned dst_v_rtnbeg_prototype : 1;
+ unsigned dst_v_rtnbeg_inlined : 1;
+ unsigned dst_v_rtnbeg_no_call : 1;
+ } dst_b_rtnbeg_flags;
+ int *dst_l_rtnbeg_address;
+ int *dst_l_rtnbeg_pd_address;
+ unsigned char dst_b_rtnbeg_name;
+} DST_ROUTINE_BEGIN;
+#define DST_K_RTNBEG_SIZE 14
+typedef struct _DST_ROUTINE_END {
+ DST_HEADER dst_a_rtnend_header;
+ char dst_b_rtnend_unused;
+ unsigned int dst_l_rtnend_size;
+} DST_ROUTINE_END;
+#define DST_K_RTNEND_SIZE 9
+typedef struct _DST_BLOCK_BEGIN {
+ DST_HEADER dst_a_blkbeg_header;
+ unsigned char dst_b_blkbeg_unused;
+ int *dst_l_blkbeg_address;
+ unsigned char dst_b_blkbeg_name;
+} DST_BLOCK_BEGIN;
+#define DST_K_BLKBEG_SIZE 10
+typedef struct _DST_BLOCK_END {
+ DST_HEADER dst_a_blkend_header;
+ unsigned char dst_b_blkend_unused;
+ unsigned int dst_l_blkend_size;
+} DST_BLOCK_END;
+#define DST_K_BLKEND_SIZE 9
+typedef struct _DST_LINE_NUM_HEADER {
+ DST_HEADER dst_a_line_num_header;
+} DST_LINE_NUM_HEADER;
+#define DST_K_LINE_NUM_HEADER_SIZE 4
+
+typedef struct _DST_PCLINE_COMMANDS {
+ char dst_b_pcline_command;
+ union {
+ unsigned int dst_l_pcline_unslong;
+ unsigned short int dst_w_pcline_unsword;
+ unsigned char dst_b_pcline_unsbyte;
+ } dst_a_pcline_access_fields;
+} DST_PCLINE_COMMANDS;
+#define DST_K_PCLINE_COMMANDS_SIZE 5
+#define DST_K_PCLINE_COMMANDS_SIZE_MIN 2
+#define DST_K_PCLINE_COMMANDS_SIZE_MAX 5
+#define DST_K_DELTA_PC_LOW -128
+#define DST_K_DELTA_PC_HIGH 0
+#define DST_K_DELTA_PC_W 1
+#define DST_K_INCR_LINUM 2
+#define DST_K_INCR_LINUM_W 3
+#define DST_K_SET_LINUM 9
+#define DST_K_SET_ABS_PC 16
+#define DST_K_DELTA_PC_L 17
+#define DST_K_INCR_LINUM_L 18
+#define DST_K_SET_LINUM_B 19
+#define DST_K_SET_LINUM_L 20
+typedef struct _DST_SOURCE_CORR {
+ DST_HEADER dst_a_source_corr_header;
+} DST_SOURCE_CORR;
+#define DST_K_SOURCE_CORR_HEADER_SIZE 4
+
+#define DST_K_SRC_DECLFILE 1
+#define DST_K_SRC_SETFILE 2
+#define DST_K_SRC_SETREC_L 3
+#define DST_K_SRC_SETREC_W 4
+#define DST_K_SRC_SETLNUM_L 5
+#define DST_K_SRC_SETLNUM_W 6
+#define DST_K_SRC_INCRLNUM_B 7
+#define DST_K_SRC_DEFLINES_W 10
+#define DST_K_SRC_DEFLINES_B 11
+#define DST_K_SRC_FORMFEED 16
+#define DST_K_SRC_MIN_CMD 1
+#define DST_K_SRC_MAX_CMD 16
+typedef struct _DST_SRC_COMMAND {
+ unsigned char dst_b_src_command;
+ union {
+ struct {
+ unsigned char dst_b_src_df_length;
+ unsigned char dst_b_src_df_flags;
+ unsigned short int dst_w_src_df_fileid;
+#ifdef __GNUC__
+ long long dst_q_src_df_rms_cdt;
+#else
+ __int64 dst_q_src_df_rms_cdt;
+#endif
+ unsigned int dst_l_src_df_rms_ebk;
+ unsigned short int dst_w_src_df_rms_ffb;
+ unsigned char dst_b_src_df_rms_rfo;
+ unsigned char dst_b_src_df_filename;
+ } dst_a_src_decl_src;
+ unsigned int dst_l_src_unslong;
+ unsigned short int dst_w_src_unsword;
+ unsigned char dst_b_src_unsbyte;
+ } dst_a_src_cmd_fields;
+} DST_SRC_COMMAND;
+#define DST_K_SRC_COMMAND_SIZE 21
+
+typedef struct _DST_SRC_CMDTRLR {
+ unsigned char dst_b_src_df_libmodname;
+} DST_SRC_CMDTRLR;
+#define DST_K_SRC_CMDTRLR_SIZE 1
+
+typedef struct _DST_PROLOG {
+ DST_HEADER dst_a_prolog_header;
+ unsigned int dst_l_prolog_bkpt_addr;
+} DST_PROLOG;
+#define DST_K_PROLOG_SIZE 8
+
+#endif /* VMSDBG_H */