diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-05 12:36:48 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-05 12:36:48 +0000 |
commit | e630752581c74676afaeeb9d5d2e705ce4b6c360 (patch) | |
tree | 196ac20d7a6c33f8318e4f2a28b07583cecf907c /gcc/vmsdbg.h | |
parent | f0a395cac6182a63c902390e33f986852d75f12d (diff) | |
download | gcc-e630752581c74676afaeeb9d5d2e705ce4b6c360.tar.gz |
* vmsdbg.h, vmsdbgout.c: Add documentation and minor cleanups.
* doc/invoke.texi: Add -gvms.
* doc/passes.texi: Add mention of vmsdbgout.c.
* doc/tm.texi: Document VMS debugging output.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47668 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/vmsdbg.h')
-rw-r--r-- | gcc/vmsdbg.h | 248 |
1 files changed, 164 insertions, 84 deletions
diff --git a/gcc/vmsdbg.h b/gcc/vmsdbg.h index 65147a6cf5d..4d48d7989ca 100644 --- a/gcc/vmsdbg.h +++ b/gcc/vmsdbg.h @@ -1,45 +1,72 @@ -/* This file contains definitions for the data structures and codes used in - VMS debugging information. */ +/* Definitions for the data structures and codes used in VMS debugging. */ + Copyright (C) 2001 Free Software Foundation, Inc. -#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; +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ + +#ifndef GCC_VMSDBG_H +#define GCC_VMSDBG_H 1 + +/* We define types and constants used in VMS Debug output. Note that the + structs only approximate the output that is written. We write the output + explicitly, field by field. This output would only agree with the + structs in this file if no padding were done. The sizes after each + struct are the size actually written, which is usually smaller than the + size of the struct. */ + +/* Header type codes. */ +typedef enum _DST_TYPE {DST_K_SOURCE = 155, DST_K_PROLOG = 162, + DST_K_BLKBEG = 176, DST_K_BLKEND = 177, + DST_K_LINE_NUM = 185, DST_K_MODBEG = 188, + DST_K_MODEND = 189, DST_K_RTNBEG = 190, + DST_K_RTNEND = 191} DST_DTYPE; + +/* Header. */ + +typedef struct _DST_HEADER +{ + union + { + unsigned short int dst_w_length; + unsigned short int dst_x_length; + } dst__header_length; + union + { + ENUM_BITFIELD (_DST_DTYPE) dst_w_type : 16; + ENUM_BITFIELD (_DST_DTYPE) dst_x_type : 16; + } 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 { +#define DST_K_DST_HEADER_SIZE sizeof 4 + +/* Language type codes. */ +typedef enum _DST_LANGUAGE {DST_K_FORTRAN = 1, DST_K_C = 7, DST_K_ADA = 9, + DST_K_UNKNOWN = 10, DST_K_CXX = 15} DST_LANGUAGE; + +/* Module header (a module is the result of a single compilation). */ + +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; + 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; @@ -47,63 +74,98 @@ typedef struct _DST_MODULE_BEGIN { unsigned char dst_b_modbeg_name; } DST_MODULE_BEGIN; #define DST_K_MODBEG_SIZE 15 - -typedef struct _DST_MB_TRLR { + +/* Module trailer. */ + +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 { + +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 { +#define DST_K_MODEND_SIZE sizeof 4 + +/* Routine header. */ + +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; + 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 { + +/* Routine trailer */ + +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 { + +/* Block header. */ + +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 { + +/* Block trailer. */ + +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 { + +/* Line number header. */ + +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 { +/* PC to Line number correlation. */ + +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; + 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; + +/* PC and Line number correlation codes. */ + #define DST_K_PCLINE_COMMANDS_SIZE 5 #define DST_K_PCLINE_COMMANDS_SIZE_MIN 2 #define DST_K_PCLINE_COMMANDS_SIZE_MAX 5 @@ -118,10 +180,16 @@ typedef struct _DST_PCLINE_COMMANDS { #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 { + +/* Source file correlation header. */ + +typedef struct _DST_SOURCE_CORR +{ DST_HEADER dst_a_source_corr_header; } DST_SOURCE_CORR; #define DST_K_SOURCE_CORR_HEADER_SIZE 4 + +/* Source file correlation codes. */ #define DST_K_SRC_DECLFILE 1 #define DST_K_SRC_SETFILE 2 @@ -135,39 +203,51 @@ typedef struct _DST_SOURCE_CORR { #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 { + +/* Source file header. */ + +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; + 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; + long long dst_q_src_df_rms_cdt; #else - __int64 dst_q_src_df_rms_cdt; + __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; + 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 { + +/* Source file trailer. */ + +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 { + +/* Prolog header. */ + +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 */ +#endif /* GCC_VMSDBG_H */ |