diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-02 14:38:07 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-02 14:38:07 +0000 |
commit | 8d60d2bc69bbdca290a0014c9d03326983f331f5 (patch) | |
tree | e42e03bca7b1d30a4e1957a95213853fa5c9a849 /gcc/vmsdbg.h | |
parent | 27fbf3a7c1556f621ab3f6f1ff95d38000e70479 (diff) | |
download | gcc-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.h | 173 |
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 */ |