Fix 'the the' typo
This commit is contained in:
parent
80ab7cb41f
commit
9f9d1ce63b
|
@ -1,3 +1,7 @@
|
|||
2003-11-06 Bruno Rohee <bruno@rohee.com>
|
||||
|
||||
* hp-symtab.h: Fix "the the" typo.
|
||||
|
||||
2003-10-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* bfdlink.h (bfd_elf_version_expr): Add "symbol" and remove
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
Written by the Center for Software Science at the University of Utah
|
||||
and by Cygnus Support.
|
||||
|
||||
Copyright 1994, 1995, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright 1994, 1995, 1998, 1999, 2003 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -191,11 +191,11 @@ typedef union dnttpointer
|
|||
#define SLTNIL (-1)
|
||||
typedef int sltpointer;
|
||||
|
||||
/* Index into DOC (= "Debugging Optimized Code") line table */
|
||||
/* Index into DOC (= "Debugging Optimized Code") line table. */
|
||||
#define LTNIL (-1)
|
||||
typedef int ltpointer;
|
||||
|
||||
/* Index into context table */
|
||||
/* Index into context table. */
|
||||
#define CTXTNIL (-1)
|
||||
typedef int ctxtpointer;
|
||||
|
||||
|
@ -371,7 +371,7 @@ struct dntt_type_module
|
|||
ADDRESS points to an SLT entry from which line number and code locations
|
||||
may be determined.
|
||||
|
||||
ENTRYADDR is the memory address corresponding the the function's entry point
|
||||
ENTRYADDR is the memory address corresponding the function's entry point
|
||||
|
||||
RETVAL points to a LNTT entry describing the function's return value.
|
||||
|
||||
|
@ -633,18 +633,16 @@ struct dntt_type_type
|
|||
{
|
||||
unsigned int extension: 1;
|
||||
unsigned int kind: 10; /* DNTT_TYPE_TYPEDEF or
|
||||
DNTT_TYPE_TAGDEF
|
||||
*/
|
||||
DNTT_TYPE_TAGDEF. */
|
||||
unsigned int global: 1;
|
||||
unsigned int typeinfo: 1;
|
||||
unsigned int unused: 19;
|
||||
vtpointer name;
|
||||
dnttpointer type; /* Underlying type, which for TAGDEF's may be
|
||||
* DNTT_TYPE_STRUCT, DNTT_TYPE_UNION,
|
||||
* DNTT_TYPE_ENUM, or DNTT_TYPE_CLASS.
|
||||
* For TYPEDEF's other underlying types
|
||||
* are also possible.
|
||||
*/
|
||||
DNTT_TYPE_STRUCT, DNTT_TYPE_UNION,
|
||||
DNTT_TYPE_ENUM, or DNTT_TYPE_CLASS.
|
||||
For TYPEDEF's other underlying types
|
||||
are also possible. */
|
||||
};
|
||||
|
||||
/* DNTT_TYPE_POINTER:
|
||||
|
@ -737,7 +735,7 @@ struct dntt_type_set
|
|||
|
||||
00 for a constant lower bound (found in LOWBOUND).
|
||||
|
||||
01 for a dynamic lower bound with the lower bound found in the the
|
||||
01 for a dynamic lower bound with the lower bound found in the
|
||||
memory address pointed to by LOWBOUND.
|
||||
|
||||
10 for a dynamic lower bound described by an variable found in the
|
||||
|
@ -934,10 +932,10 @@ struct dntt_type_functype
|
|||
infers the "with" semantics when it sees a "this" argument to the member
|
||||
function. So GDB can safely ignore the DNTT_TYPE_WITH record.
|
||||
|
||||
A DNTT_TYPE_WITH has a matching DNTT_TYPE_END symbol
|
||||
*/
|
||||
A DNTT_TYPE_WITH has a matching DNTT_TYPE_END symbol. */
|
||||
|
||||
struct dntt_type_with {
|
||||
struct dntt_type_with
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_WITH */
|
||||
unsigned int addrtype: 2; /* 0 => STATTYPE */
|
||||
|
@ -994,86 +992,86 @@ struct dntt_type_with {
|
|||
CLASS_SCOPE is what is used to indicate it is really a method.
|
||||
|
||||
|
||||
A DNTT_TYPE_CLASS_SCOPE symbol must have a matching DNTT_TYPE_END symbol
|
||||
*/
|
||||
A DNTT_TYPE_CLASS_SCOPE symbol must have a matching DNTT_TYPE_END symbol. */
|
||||
|
||||
struct dntt_type_class_scope {
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_CLASS_SCOPE */
|
||||
struct dntt_type_class_scope
|
||||
{
|
||||
unsigned int extension: 1; /* Always zero. */
|
||||
unsigned int kind: 10; /* Always DNTT_TYPE_CLASS_SCOPE. */
|
||||
unsigned int unused: 21;
|
||||
sltpointer address ; /* pointer to SLT entry */
|
||||
dnttpointer type ; /* pointer to class type DNTT */
|
||||
sltpointer address ; /* Pointer to SLT entry. */
|
||||
dnttpointer type ; /* Pointer to class type DNTT. */
|
||||
};
|
||||
|
||||
/* C++ reference parameter.
|
||||
The structure of this record is the same as DNTT_TYPE_POINTER -
|
||||
refer to struct dntt_type_pointer.
|
||||
*/
|
||||
refer to struct dntt_type_pointer. */
|
||||
|
||||
/* The next two describe C++ pointer-to-data-member type, and
|
||||
pointer-to-member-function type, respectively.
|
||||
DNTT_TYPE_PTRMEM and DNTT_TYPE_PTRMEMFUNC have the same structure
|
||||
*/
|
||||
DNTT_TYPE_PTRMEM and DNTT_TYPE_PTRMEMFUNC have the same structure. */
|
||||
|
||||
struct dntt_type_ptrmem {
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_PTRMEM */
|
||||
struct dntt_type_ptrmem
|
||||
{
|
||||
unsigned int extension: 1; /* Always zero. */
|
||||
unsigned int kind: 10; /* Always DNTT_TYPE_PTRMEM. */
|
||||
unsigned int unused: 21;
|
||||
dnttpointer pointsto ; /* pointer to class DNTT */
|
||||
dnttpointer memtype ; /* type of member */
|
||||
dnttpointer pointsto ; /* Pointer to class DNTT. */
|
||||
dnttpointer memtype ; /* Type of member. */
|
||||
};
|
||||
|
||||
struct dntt_type_ptrmemfunc {
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_PTRMEMFUNC */
|
||||
struct dntt_type_ptrmemfunc
|
||||
{
|
||||
unsigned int extension: 1; /* Always zero. */
|
||||
unsigned int kind: 10; /* Always DNTT_TYPE_PTRMEMFUNC. */
|
||||
unsigned int unused: 21;
|
||||
dnttpointer pointsto ; /* pointer to class DNTT */
|
||||
dnttpointer memtype ; /* type of member */
|
||||
dnttpointer pointsto ; /* Pointer to class DNTT. */
|
||||
dnttpointer memtype ; /* Type of member. */
|
||||
};
|
||||
|
||||
/* The DNTT_TYPE_CLASS symbol is emitted to describe a class type.
|
||||
* "memberlist" points to a chained list of FIELD or GENFIELD records
|
||||
* indicating the class members. "parentlist" points to a chained list
|
||||
* of INHERITANCE records indicating classes from which we inherit
|
||||
* fields.
|
||||
*/
|
||||
"memberlist" points to a chained list of FIELD or GENFIELD records
|
||||
indicating the class members. "parentlist" points to a chained list
|
||||
of INHERITANCE records indicating classes from which we inherit
|
||||
fields. */
|
||||
|
||||
struct dntt_type_class
|
||||
{
|
||||
unsigned int extension: 1; /* always 0 */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_CLASS */
|
||||
unsigned int abstract: 1; /* is this an abstract class? */
|
||||
unsigned int class_decl: 2; /* 0=class,1=union,2=struct */
|
||||
unsigned int expansion: 1; /* 1=template expansion */
|
||||
unsigned int extension: 1; /* Always zero. */
|
||||
unsigned int kind: 10; /* Always DNTT_TYPE_CLASS. */
|
||||
unsigned int abstract: 1; /* Is this an abstract class? */
|
||||
unsigned int class_decl: 2; /* 0=class,1=union,2=struct. */
|
||||
unsigned int expansion: 1; /* 1=template expansion. */
|
||||
unsigned int unused: 17;
|
||||
dnttpointer memberlist ; /* ptr to chain of [GEN]FIELDs */
|
||||
unsigned long vtbl_loc ; /* offset in obj of ptr to vtbl */
|
||||
dnttpointer parentlist ; /* ptr to K_INHERITANCE list */
|
||||
unsigned long bitlength ; /* total at this level */
|
||||
dnttpointer identlist ; /* ptr to chain of class ident's */
|
||||
dnttpointer friendlist ; /* ptr to K_FRIEND list */
|
||||
dnttpointer templateptr ; /* ptr to template */
|
||||
dnttpointer nextexp ; /* ptr to next expansion */
|
||||
dnttpointer memberlist ; /* Ptr to chain of [GEN]FIELDs. */
|
||||
unsigned long vtbl_loc ; /* Offset in obj of ptr to vtbl. */
|
||||
dnttpointer parentlist ; /* Ptr to K_INHERITANCE list. */
|
||||
unsigned long bitlength ; /* Total at this level. */
|
||||
dnttpointer identlist ; /* Ptr to chain of class ident's. */
|
||||
dnttpointer friendlist ; /* Ptr to K_FRIEND list. */
|
||||
dnttpointer templateptr ; /* Ptr to template. */
|
||||
dnttpointer nextexp ; /* Ptr to next expansion. */
|
||||
};
|
||||
|
||||
/* Class members are indicated via either the FIELD record (for
|
||||
data members, same as for C struct fields), or by the GENFIELD record
|
||||
(for member functions).
|
||||
*/
|
||||
(for member functions). */
|
||||
|
||||
struct dntt_type_genfield {
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_GENFIELD */
|
||||
unsigned int visibility: 2; /* pub = 0, prot = 1, priv = 2 */
|
||||
unsigned int a_union: 1; /* 1 => anonymous union member */
|
||||
struct dntt_type_genfield
|
||||
{
|
||||
unsigned int extension: 1; /* Always zero. */
|
||||
unsigned int kind: 10; /* Always DNTT_TYPE_GENFIELD. */
|
||||
unsigned int visibility: 2; /* Pub = 0, prot = 1, priv = 2. */
|
||||
unsigned int a_union: 1; /* 1 => anonymous union member. */
|
||||
unsigned int unused: 18;
|
||||
dnttpointer field ; /* pointer to field or qualifier */
|
||||
dnttpointer nextfield ; /* pointer to next field */
|
||||
dnttpointer field ; /* Pointer to field or qualifier. */
|
||||
dnttpointer nextfield ; /* Pointer to next field. */
|
||||
};
|
||||
|
||||
/* C++ virtual functions */
|
||||
/* C++ virtual functions. */
|
||||
|
||||
struct dntt_type_vfunc {
|
||||
struct dntt_type_vfunc
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_VFUNC */
|
||||
unsigned int pure: 1; /* pure virtual function ? */
|
||||
|
@ -1082,9 +1080,10 @@ struct dntt_type_vfunc {
|
|||
unsigned long vtbl_offset ; /* offset into vtbl for virtual */
|
||||
};
|
||||
|
||||
/* Not precisely sure what this is intended for - DDE ignores it */
|
||||
/* Not precisely sure what this is intended for - DDE ignores it. */
|
||||
|
||||
struct dntt_type_memaccess {
|
||||
struct dntt_type_memaccess
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_MEMACCESS */
|
||||
unsigned int unused: 21;
|
||||
|
@ -1093,12 +1092,12 @@ struct dntt_type_memaccess {
|
|||
};
|
||||
|
||||
/* The DNTT_TYPE_INHERITANCE record describes derived classes.
|
||||
* In particular, the "parentlist" field of the CLASS record points
|
||||
* to a list of INHERITANCE records for classes from which we
|
||||
* inherit members.
|
||||
*/
|
||||
In particular, the "parentlist" field of the CLASS record points
|
||||
to a list of INHERITANCE records for classes from which we
|
||||
inherit members. */
|
||||
|
||||
struct dntt_type_inheritance {
|
||||
struct dntt_type_inheritance
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_INHERITANCE */
|
||||
unsigned int Virtual: 1; /* virtual base class ? */
|
||||
|
@ -1112,7 +1111,8 @@ struct dntt_type_inheritance {
|
|||
|
||||
/* C++ "friend" classes ... */
|
||||
|
||||
struct dntt_type_friend_class {
|
||||
struct dntt_type_friend_class
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_FRIEND_CLASS */
|
||||
unsigned int unused: 21;
|
||||
|
@ -1120,7 +1120,8 @@ struct dntt_type_friend_class {
|
|||
dnttpointer next ; /* next DNTT_FRIEND */
|
||||
};
|
||||
|
||||
struct dntt_type_friend_func {
|
||||
struct dntt_type_friend_func
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_FRIEND_FUNC */
|
||||
unsigned int unused: 21;
|
||||
|
@ -1131,11 +1132,11 @@ struct dntt_type_friend_func {
|
|||
};
|
||||
|
||||
/* DDE appears to ignore the DNTT_TYPE_MODIFIER record.
|
||||
* It could perhaps be used to give better "ptype" output in GDB;
|
||||
* otherwise it is probably safe for GDB to ignore it also.
|
||||
*/
|
||||
It could perhaps be used to give better "ptype" output in GDB;
|
||||
otherwise it is probably safe for GDB to ignore it also. */
|
||||
|
||||
struct dntt_type_modifier {
|
||||
struct dntt_type_modifier
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_MODIFIER */
|
||||
unsigned int m_const: 1; /* const */
|
||||
|
@ -1148,9 +1149,10 @@ struct dntt_type_modifier {
|
|||
unsigned long future ; /* padding to 3-word block end */
|
||||
};
|
||||
|
||||
/* I'm not sure what this was intended for - DDE ignores it */
|
||||
/* I'm not sure what this was intended for - DDE ignores it. */
|
||||
|
||||
struct dntt_type_object_id {
|
||||
struct dntt_type_object_id
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_OBJECT_ID */
|
||||
unsigned int indirect: 1; /* Is object_ident addr of addr? */
|
||||
|
@ -1165,16 +1167,15 @@ struct dntt_type_object_id {
|
|||
/* No separate dntt_type_memfunc; same as dntt_type_func */
|
||||
|
||||
/* Symbol records to support templates. These only get used
|
||||
* in DDE's "describe" output (like GDB's "ptype").
|
||||
*/
|
||||
in DDE's "describe" output (like GDB's "ptype"). */
|
||||
|
||||
/* The TEMPLATE record is the header for a template-class.
|
||||
* Like the CLASS record, a TEMPLATE record has a memberlist that
|
||||
* points to a list of template members. It also has an arglist
|
||||
* pointing to a list of TEMPLATE_ARG records.
|
||||
*/
|
||||
Like the CLASS record, a TEMPLATE record has a memberlist that
|
||||
points to a list of template members. It also has an arglist
|
||||
pointing to a list of TEMPLATE_ARG records. */
|
||||
|
||||
struct dntt_type_template {
|
||||
struct dntt_type_template
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_TEMPLATE */
|
||||
unsigned int abstract: 1; /* is this an abstract class? */
|
||||
|
@ -1191,12 +1192,15 @@ struct dntt_type_template {
|
|||
};
|
||||
|
||||
/* Template-class arguments are a list of TEMPL_ARG records
|
||||
* chained together. The "name" field is the name of the formal.
|
||||
* E.g.:
|
||||
* template <class T> class q { ... };
|
||||
* Then "T" is the name of the formal argument.
|
||||
*/
|
||||
struct dntt_type_templ_arg {
|
||||
chained together. The "name" field is the name of the formal.
|
||||
E.g.:
|
||||
|
||||
template <class T> class q { ... };
|
||||
|
||||
Then "T" is the name of the formal argument. */
|
||||
|
||||
struct dntt_type_templ_arg
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_TEMPL_ARG */
|
||||
unsigned int usagetype: 1; /* 0 type-name 1 expression */
|
||||
|
@ -1208,19 +1212,22 @@ struct dntt_type_templ_arg {
|
|||
};
|
||||
|
||||
/* FUNC_TEMPLATE records are sort of like FUNCTION, but are emitted
|
||||
* for template member functions. E.g.,
|
||||
* template <class T> class q {
|
||||
for template member functions. E.g.,
|
||||
|
||||
template <class T> class q
|
||||
{
|
||||
...
|
||||
void f();
|
||||
...
|
||||
};
|
||||
* Within the list of FIELDs/GENFIELDs defining the member list
|
||||
* of the template "q", "f" would appear as a FUNC_TEMPLATE.
|
||||
* We'll also see instances of FUNCTION "f" records for each
|
||||
* instantiation of the template.
|
||||
*/
|
||||
|
||||
struct dntt_type_func_template {
|
||||
Within the list of FIELDs/GENFIELDs defining the member list
|
||||
of the template "q", "f" would appear as a FUNC_TEMPLATE.
|
||||
We'll also see instances of FUNCTION "f" records for each
|
||||
instantiation of the template. */
|
||||
|
||||
struct dntt_type_func_template
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_FUNC_TEMPLATE */
|
||||
unsigned int public: 1; /* 1 => globally visible */
|
||||
|
@ -1240,13 +1247,13 @@ struct dntt_type_func_template {
|
|||
};
|
||||
|
||||
/* LINK is apparently intended to link together function template
|
||||
* definitions with their instantiations. However, it is not clear
|
||||
* why this would be needed, except to provide the information on
|
||||
* a "ptype" command. And as far as I can tell, aCC does not
|
||||
* generate this record.
|
||||
*/
|
||||
definitions with their instantiations. However, it is not clear
|
||||
why this would be needed, except to provide the information on
|
||||
a "ptype" command. And as far as I can tell, aCC does not
|
||||
generate this record. */
|
||||
|
||||
struct dntt_type_link {
|
||||
struct dntt_type_link
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* always DNTT_TYPE_LINK */
|
||||
unsigned int linkKind: 4; /* always LINK_UNKNOWN */
|
||||
|
@ -1257,7 +1264,7 @@ struct dntt_type_link {
|
|||
long future[2] ; /* padding to 3-word block end */
|
||||
};
|
||||
|
||||
/* end of C++ specific SOM's */
|
||||
/* end of C++ specific SOM's. */
|
||||
|
||||
/* DNTT_TYPE_DYN_ARRAY_DESC is unused by GDB */
|
||||
/* DNTT_TYPE_DESC_SUBRANGE is unused by GDB */
|
||||
|
@ -1266,7 +1273,8 @@ struct dntt_type_link {
|
|||
/* DNTT_TYPE_INLN_LIST is unused by GDB */
|
||||
/* DNTT_TYPE_ALIAS is unused by GDB */
|
||||
|
||||
struct dntt_type_doc_function {
|
||||
struct dntt_type_doc_function
|
||||
{
|
||||
unsigned int extension: 1; /* always zero */
|
||||
unsigned int kind: 10; /* K_DOC_FUNCTION or */
|
||||
/* K_DOC_MEMFUNC */
|
||||
|
@ -1311,8 +1319,8 @@ struct dntt_type_block
|
|||
};
|
||||
|
||||
/* One entry in a DNTT (either the LNTT or GNTT).
|
||||
* This is a union of the above 60 or so structure definitions.
|
||||
*/
|
||||
This is a union of the above 60 or so structure definitions. */
|
||||
|
||||
union dnttentry
|
||||
{
|
||||
struct dntt_type_srcfile dsfile;
|
||||
|
@ -1439,18 +1447,16 @@ union sltentry
|
|||
};
|
||||
|
||||
/* $LINES$ declarations
|
||||
* This is the line table used for optimized code, which is only present
|
||||
* in the new $PROGRAM_INFO$ debug space.
|
||||
*/
|
||||
This is the line table used for optimized code, which is only present
|
||||
in the new $PROGRAM_INFO$ debug space. */
|
||||
|
||||
#define DST_LN_ESCAPE_FLAG1 15
|
||||
#define DST_LN_ESCAPE_FLAG2 14
|
||||
#define DST_LN_CTX_SPEC1 13
|
||||
#define DST_LN_CTX_SPEC2 12
|
||||
|
||||
/*
|
||||
Escape function codes:
|
||||
*/
|
||||
/* Escape function codes: */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
dst_ln_pad, /* pad byte */
|
||||
|
@ -1523,28 +1529,31 @@ typedef union
|
|||
* dst_ln_entry_ptr_t;
|
||||
|
||||
/* Warning: although the above union occupies only 1 byte the compiler treats
|
||||
* it as having size 2 (the minimum size of a struct). Therefore a sequence of
|
||||
* dst_ln_entry_t's cannot be described as an array, and walking through such a
|
||||
* sequence requires convoluted code such as
|
||||
* ln_ptr = (dst_ln_entry_ptr_t) (char*) ln_ptr + 1
|
||||
* We regret the inconvenience. */
|
||||
it as having size 2 (the minimum size of a struct). Therefore a sequence of
|
||||
dst_ln_entry_t's cannot be described as an array, and walking through such a
|
||||
sequence requires convoluted code such as
|
||||
ln_ptr = (dst_ln_entry_ptr_t) (char*) ln_ptr + 1
|
||||
We regret the inconvenience. */
|
||||
|
||||
/* Structure for interpreting the byte following a dst_ln_ctx1 entry */
|
||||
typedef struct {
|
||||
/* Structure for interpreting the byte following a dst_ln_ctx1 entry. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned int ctx1_index : 5; /* 5 bit index into context table */
|
||||
unsigned int ctx1_run_length : 3; /* 3 bit run length */
|
||||
} dst_ln_ctx1_t,
|
||||
*dst_ln_ctx1_ptr_t;
|
||||
|
||||
/* Structure for interpreting the bytes following a dst_ln_ctx2 entry */
|
||||
typedef struct {
|
||||
/* Structure for interpreting the bytes following a dst_ln_ctx2 entry. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned int ctx2_index : 13; /* 13 bit index into context table */
|
||||
unsigned int ctx2_run_length : 3; /* 3 bit run length */
|
||||
} dst_ln_ctx2_t,
|
||||
*dst_ln_ctx2_ptr_t;
|
||||
|
||||
/* Structure for interpreting the bytes following a dst_ln_ctx4 entry */
|
||||
typedef struct {
|
||||
/* Structure for interpreting the bytes following a dst_ln_ctx4 entry. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned int ctx4_index : 29; /* 29 bit index into context table */
|
||||
unsigned int ctx4_run_length : 3; /* 3 bit run length */
|
||||
} dst_ln_ctx4_t,
|
||||
|
@ -1552,49 +1561,48 @@ typedef struct {
|
|||
|
||||
|
||||
/* PXDB definitions.
|
||||
*
|
||||
* PXDB is a post-processor which takes the executable file
|
||||
* and massages the debug information so that the debugger may
|
||||
* start up and run more efficiently. Some of the tasks
|
||||
* performed by PXDB are:
|
||||
*
|
||||
* o Remove duplicate global type and variable information
|
||||
* from the GNTT,
|
||||
*
|
||||
* o Append the GNTT onto the end of the LNTT and place both
|
||||
* back in the LNTT section,
|
||||
*
|
||||
* o Build quick look-up tables (description follows) for
|
||||
* files, procedures, modules, and paragraphs (for Cobol),
|
||||
* placing these in the GNTT section,
|
||||
*
|
||||
* o Reconstruct the header appearing in the header section
|
||||
* to access this information.
|
||||
*
|
||||
* The "quick look-up" tables are in the $GNTT$ sub-space, in
|
||||
* the following order:
|
||||
*
|
||||
* Procedures -sorted by address
|
||||
* Source files -sorted by address (of the
|
||||
* generated code from routines)
|
||||
* Modules -sorted by address
|
||||
* Classes -<unsorted?>
|
||||
* Address Alias -sorted by index <?>
|
||||
* Object IDs -sorted by object identifier
|
||||
*
|
||||
* Most quick entries have (0-based) indices into the LNTT tables to
|
||||
* the full entries for the item it describes.
|
||||
*
|
||||
* The post-PXDB header is in the $HEADER$ sub-space. Alas, it
|
||||
* occurs in different forms, depending on the optimization level
|
||||
* in the compilation step and whether PXDB was run or not. The
|
||||
* worst part is the forms aren't self-describing, so we'll have
|
||||
* to grovel in the bits to figure out what kind we're looking at
|
||||
* (see hp_get_header in hp-psymtab-read.c).
|
||||
*/
|
||||
|
||||
/* PXDB versions
|
||||
*/
|
||||
PXDB is a post-processor which takes the executable file
|
||||
and massages the debug information so that the debugger may
|
||||
start up and run more efficiently. Some of the tasks
|
||||
performed by PXDB are:
|
||||
|
||||
o Remove duplicate global type and variable information
|
||||
from the GNTT,
|
||||
|
||||
o Append the GNTT onto the end of the LNTT and place both
|
||||
back in the LNTT section,
|
||||
|
||||
o Build quick look-up tables (description follows) for
|
||||
files, procedures, modules, and paragraphs (for Cobol),
|
||||
placing these in the GNTT section,
|
||||
|
||||
o Reconstruct the header appearing in the header section
|
||||
to access this information.
|
||||
|
||||
The "quick look-up" tables are in the $GNTT$ sub-space, in
|
||||
the following order:
|
||||
|
||||
Procedures -sorted by address
|
||||
Source files -sorted by address (of the
|
||||
generated code from routines)
|
||||
Modules -sorted by address
|
||||
Classes -<unsorted?>
|
||||
Address Alias -sorted by index <?>
|
||||
Object IDs -sorted by object identifier
|
||||
|
||||
Most quick entries have (0-based) indices into the LNTT tables to
|
||||
the full entries for the item it describes.
|
||||
|
||||
The post-PXDB header is in the $HEADER$ sub-space. Alas, it
|
||||
occurs in different forms, depending on the optimization level
|
||||
in the compilation step and whether PXDB was run or not. The
|
||||
worst part is the forms aren't self-describing, so we'll have
|
||||
to grovel in the bits to figure out what kind we're looking at
|
||||
(see hp_get_header in hp-psymtab-read.c). */
|
||||
|
||||
/* PXDB versions. */
|
||||
|
||||
#define PXDB_VERSION_CPLUSPLUS 1
|
||||
#define PXDB_VERSION_7_4 2
|
||||
#define PXDB_VERSION_CPP_30 3
|
||||
|
@ -1605,10 +1613,11 @@ typedef struct {
|
|||
#define PXDB_VERSION_2_1 1
|
||||
|
||||
/* Header version for the case that there is no DOC info
|
||||
* but the executable has been processed by pxdb (the easy
|
||||
* case, from "cc -g").
|
||||
*/
|
||||
typedef struct PXDB_struct {
|
||||
but the executable has been processed by pxdb (the easy
|
||||
case, from "cc -g"). */
|
||||
|
||||
typedef struct PXDB_struct
|
||||
{
|
||||
int pd_entries; /* # of entries in function look-up table */
|
||||
int fd_entries; /* # of entries in file look-up table */
|
||||
int md_entries; /* # of entries in module look-up table */
|
||||
|
@ -1630,9 +1639,10 @@ typedef struct PXDB_struct {
|
|||
} PXDB_header, *PXDB_header_ptr;
|
||||
|
||||
/* Header version for the case that there is no DOC info and the
|
||||
* executable has NOT been processed by pxdb.
|
||||
*/
|
||||
typedef struct XDB_header_struct {
|
||||
executable has NOT been processed by pxdb. */
|
||||
|
||||
typedef struct XDB_header_struct
|
||||
{
|
||||
long gntt_length;
|
||||
long lntt_length;
|
||||
long slt_length;
|
||||
|
@ -1641,27 +1651,25 @@ typedef struct XDB_header_struct {
|
|||
} XDB_header;
|
||||
|
||||
/* Header version for the case that there is DOC info and the
|
||||
* executable has been processed by pxdb.
|
||||
*/
|
||||
typedef struct DOC_info_PXDB_header_struct {
|
||||
executable has been processed by pxdb. */
|
||||
|
||||
typedef struct DOC_info_PXDB_header_struct
|
||||
{
|
||||
unsigned int xdb_header: 1; /* bit set if this is post-3.1 xdb */
|
||||
unsigned int doc_header: 1; /* bit set if this is doc-style header */
|
||||
unsigned int version: 8; /* version of pxdb see defines
|
||||
* PXDB_VERSION_* in this file */
|
||||
PXDB_VERSION_* in this file. */
|
||||
unsigned int reserved_for_flags: 16;/* for future use; -- must be
|
||||
* set to zero
|
||||
*/
|
||||
set to zero. */
|
||||
unsigned int has_aux_pd_table: 1; /* $GNTT$ has aux PD table */
|
||||
unsigned int has_expr_table: 1; /* space has $EXPR$ */
|
||||
unsigned int has_range_table: 1; /* space has $RANGE$ */
|
||||
unsigned int has_context_table: 1; /* space has $SRC_CTXT$ */
|
||||
unsigned int has_lines_table: 1; /* space contains a $LINES$
|
||||
* subspace for line tables.
|
||||
*/
|
||||
subspace for line tables. */
|
||||
unsigned int has_lt_offset_map: 1; /* space contains an lt_offset
|
||||
* subspace for line table mapping
|
||||
*/
|
||||
/* the following fields are the same as those in the PXDB_header in $DEBUG$ */
|
||||
subspace for line table mapping. */
|
||||
/* The following fields are the same as those in the PXDB_header in $DEBUG$ */
|
||||
int pd_entries; /* # of entries in function look-up table */
|
||||
int fd_entries; /* # of entries in file look-up table */
|
||||
int md_entries; /* # of entries in module look-up table */
|
||||
|
@ -1682,32 +1690,20 @@ typedef struct DOC_info_PXDB_header_struct {
|
|||
} DOC_info_PXDB_header;
|
||||
|
||||
/* Header version for the case that there is DOC info and the
|
||||
* executable has NOT been processed by pxdb.
|
||||
*/
|
||||
typedef struct DOC_info_header_struct {
|
||||
executable has NOT been processed by pxdb. */
|
||||
|
||||
typedef struct DOC_info_header_struct
|
||||
{
|
||||
unsigned int xdb_header: 1; /* bit set if this is post-3.1 xdb */
|
||||
unsigned int doc_header: 1; /* bit set if this is doc-style header*/
|
||||
unsigned int version: 8; /* version of debug/header
|
||||
format. For 10.0 the value
|
||||
will be 1. For "Davis" the
|
||||
value is 2.
|
||||
*/
|
||||
unsigned int reserved_for_flags: 18; /* for future use; -- must be
|
||||
set to zero
|
||||
*/
|
||||
unsigned int has_range_table: 1; /* space contains a $RANGE$
|
||||
subspace for variable ranges.
|
||||
*/
|
||||
unsigned int has_context_table: 1; /* space contains a $CTXT$
|
||||
subspace for context/inline
|
||||
table.
|
||||
*/
|
||||
unsigned int has_lines_table: 1; /* space contains a $LINES$
|
||||
subspace for line tables.
|
||||
*/
|
||||
unsigned int has_lt_offset_map: 1; /* space contains an lt_offset
|
||||
subspace for line table mapping
|
||||
*/
|
||||
will be 1. For "Davis" the value is 2. */
|
||||
unsigned int reserved_for_flags: 18; /* for future use; -- must be set to zero. */
|
||||
unsigned int has_range_table: 1; /* space contains a $RANGE$ subspace for variable ranges. */
|
||||
unsigned int has_context_table: 1; /* space contains a $CTXT$ subspace for context/inline table. */
|
||||
unsigned int has_lines_table: 1; /* space contains a $LINES$ subspace for line tables. */
|
||||
unsigned int has_lt_offset_map: 1; /* space contains an lt_offset subspace for line table mapping. */
|
||||
|
||||
long gntt_length; /* same as old header */
|
||||
long lntt_length; /* same as old header */
|
||||
|
@ -1730,13 +1726,13 @@ typedef union GenericDebugHeader_union
|
|||
|
||||
|
||||
/* Procedure Descriptor:
|
||||
*
|
||||
* An element of the procedure quick look-up table
|
||||
*/
|
||||
typedef struct quick_procedure {
|
||||
long isym; /* 0-based index of first symbol*/
|
||||
/* for procedure in $LNTT$, */
|
||||
/* i.e. the procedure itself */
|
||||
An element of the procedure quick look-up table. */
|
||||
|
||||
typedef struct quick_procedure
|
||||
{
|
||||
long isym; /* 0-based index of first symbol
|
||||
for procedure in $LNTT$,
|
||||
i.e. the procedure itself. */
|
||||
CORE_ADDR adrStart; /* memory adr of start of proc */
|
||||
CORE_ADDR adrEnd; /* memory adr of end of proc */
|
||||
char *sbAlias; /* alias name of procedure */
|
||||
|
@ -1769,12 +1765,12 @@ typedef struct quick_procedure {
|
|||
} quick_procedure_entry, *quick_procedure_entry_ptr;
|
||||
|
||||
/* Source File Descriptor:
|
||||
*
|
||||
* An element of the source file quick look-up table
|
||||
*/
|
||||
typedef struct quick_source {
|
||||
long isym; /* 0-based index in $LNTT$ of */
|
||||
/* first symbol for this file */
|
||||
An element of the source file quick look-up table. */
|
||||
|
||||
typedef struct quick_source
|
||||
{
|
||||
long isym; /* 0-based index in $LNTT$ of
|
||||
first symbol for this file. */
|
||||
CORE_ADDR adrStart; /* mem adr of start of file's code */
|
||||
CORE_ADDR adrEnd; /* mem adr of end of file's code */
|
||||
char *sbFile; /* name of source file */
|
||||
|
@ -1782,19 +1778,19 @@ typedef struct quick_source {
|
|||
unsigned int fWarned: 1; /* have warned about age problems? */
|
||||
unsigned int fSrcfile: 1; /* 0 => include 1=> source */
|
||||
unsigned short ilnMac; /* lines in file (0 if don't know) */
|
||||
int ipd; /* 0-based index of first procedure*/
|
||||
/* in this file, in the quick */
|
||||
/* look-up table of procedures */
|
||||
int ipd; /* 0-based index of first procedure
|
||||
in this file, in the quick
|
||||
look-up table of procedures. */
|
||||
unsigned int *rgLn; /* line pointer array, if any */
|
||||
} quick_file_entry, *quick_file_entry_ptr;
|
||||
|
||||
/* Module Descriptor:
|
||||
*
|
||||
* An element of the module quick reference table
|
||||
*/
|
||||
typedef struct quick_module {
|
||||
long isym; /* 0-based index of first */
|
||||
/* symbol for module */
|
||||
An element of the module quick reference table. */
|
||||
|
||||
typedef struct quick_module
|
||||
{
|
||||
long isym; /* 0-based index of first
|
||||
symbol for module. */
|
||||
CORE_ADDR adrStart; /* adr of start of mod. */
|
||||
CORE_ADDR adrEnd; /* adr of end of mod. */
|
||||
char *sbAlias; /* alias name of module */
|
||||
|
@ -1808,19 +1804,19 @@ typedef struct quick_module {
|
|||
} quick_module_entry, *quick_module_entry_ptr;
|
||||
|
||||
/* Auxiliary Procedure Descriptor:
|
||||
*
|
||||
* An element of the auxiliary procedure quick look-up table
|
||||
*/
|
||||
typedef struct quick_aux_procedure {
|
||||
An element of the auxiliary procedure quick look-up table. */
|
||||
|
||||
typedef struct quick_aux_procedure
|
||||
{
|
||||
long isym_inln; /* start on inline list for proc */
|
||||
long spare;
|
||||
} quick_aux_procedure_entry, *quick_aux_procedure_entry_ptr;
|
||||
|
||||
/* Paragraph Descriptor:
|
||||
*
|
||||
* An element of the paragraph quick look-up table
|
||||
*/
|
||||
typedef struct quick_paragraph {
|
||||
An element of the paragraph quick look-up table. */
|
||||
|
||||
typedef struct quick_paragraph
|
||||
{
|
||||
long isym; /* first symbol for label (index) */
|
||||
CORE_ADDR adrStart; /* memory adr of start of label */
|
||||
CORE_ADDR adrEnd; /* memory adr of end of label */
|
||||
|
@ -1830,12 +1826,11 @@ typedef struct quick_paragraph {
|
|||
unsigned int unused: 31; /* future use */
|
||||
} quick_paragraph_entry, *quick_paragraph_entry_ptr;
|
||||
|
||||
/*
|
||||
* Class Descriptor:
|
||||
*
|
||||
* An element of the class quick look-up table
|
||||
*/
|
||||
typedef struct quick_class {
|
||||
/* Class Descriptor:
|
||||
An element of the class quick look-up table. */
|
||||
|
||||
typedef struct quick_class
|
||||
{
|
||||
char *sbClass; /* name of class */
|
||||
long isym; /* class symbol (tag) */
|
||||
unsigned int type : 2; /* 0=class, 1=union, 2=struct */
|
||||
|
@ -1847,10 +1842,10 @@ typedef struct quick_class {
|
|||
} quick_class_entry, *quick_class_entry_ptr;
|
||||
|
||||
/* Address Alias Entry
|
||||
*
|
||||
* An element of the address alias quick look-up table
|
||||
*/
|
||||
typedef struct quick_alias {
|
||||
An element of the address alias quick look-up table. */
|
||||
|
||||
typedef struct quick_alias
|
||||
{
|
||||
CORE_ADDR low;
|
||||
CORE_ADDR high;
|
||||
int index;
|
||||
|
@ -1859,16 +1854,13 @@ typedef struct quick_alias {
|
|||
} quick_alias_entry, *quick_alias_entry_ptr;
|
||||
|
||||
/* Object Identification Entry
|
||||
*
|
||||
* An element of the object identification quick look-up table
|
||||
*/
|
||||
An element of the object identification quick look-up table. */
|
||||
|
||||
typedef struct quick_obj_ID {
|
||||
typedef struct quick_obj_ID
|
||||
{
|
||||
CORE_ADDR obj_ident; /* class identifier */
|
||||
long isym; /* class symbol */
|
||||
long offset; /* offset to object start */
|
||||
} quick_obj_ID_entry, *quick_obj_ID_entry_ptr;
|
||||
|
||||
|
||||
#endif /* HP_SYMTAB_INCLUDED */
|
||||
|
||||
|
|
Loading…
Reference in New Issue