mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
196 lines
7.7 KiB
196 lines
7.7 KiB
/***********************************************************************
|
|
* Microsoft (R) Debugging Information Dumper
|
|
*
|
|
* Copyright (C) Microsoft Corp 1987-1995. All rights reserved.
|
|
*
|
|
* File: symrec.h
|
|
*
|
|
* File Comments:
|
|
*
|
|
***********************************************************************/
|
|
|
|
typedef struct BLKSYMTYPE // Obsolete
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short len; /* Block length */
|
|
char name[1]; /* Length-prefixed name */
|
|
} BLKSYMTYPE;
|
|
|
|
typedef struct PROCSYMTYPE // Obsolete
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short typind; /* Type index */
|
|
unsigned short len; /* Proc length */
|
|
unsigned short startoff; /* Debug start offset */
|
|
unsigned short endoff; /* Debug end offset */
|
|
short res; /* Reserved */
|
|
char rtntyp; /* Return type (NEAR/FAR) */
|
|
char name[1]; /* Length-prefixed name */
|
|
} PROCSYMTYPE;
|
|
|
|
typedef struct WITHSYMTYPE // Obsolete
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short len; /* Length of scope */
|
|
char name[1]; /* String to be evaluated */
|
|
} WITHSYMTYPE;
|
|
|
|
typedef struct BPSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* BP-relative offset */
|
|
unsigned short typind; /* Type index */
|
|
char name[1]; /* Length-prefixed name */
|
|
} BPSYMTYPE;
|
|
|
|
typedef struct LABSYMTYPE //Obsolete
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* Offset in code seg */
|
|
char rtntyp; /* Return type (NEAR/FAR) */
|
|
char name[1]; /* Length-prefixed name */
|
|
} LABSYMTYPE;
|
|
|
|
typedef struct LOCSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* Offset in segment */
|
|
unsigned short seg; /* Segment address */
|
|
unsigned short typind; /* Type index */
|
|
char name[1]; /* Length-prefixed name */
|
|
} LOCSYMTYPE;
|
|
|
|
typedef struct REGSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned short typind; /* Type index */
|
|
char reg; /* Which register */
|
|
char name[1]; /* Length-prefixed name */
|
|
} REGSYMTYPE;
|
|
|
|
typedef struct CONSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned short typind; /* Type index */
|
|
char value[1]; /* Variable-length value */
|
|
char name[1]; /* Length-prefixed name */
|
|
} CONSYMTYPE;
|
|
|
|
typedef struct TYPEDEFSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned short typind; /* Type index */
|
|
char name[1]; /* Length-prefixed name */
|
|
} TYPEDEFSYMTYPE;
|
|
|
|
typedef struct CV4PROCSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long parentsym; /* Offset of sym of enclosing proc */
|
|
unsigned long endsym; /* matching end */
|
|
unsigned long nextsym; /* Sym of closest following proc */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short seg; /* Seg of proc */
|
|
unsigned short typind; /* Type index */
|
|
unsigned long len; /* Proc length */
|
|
unsigned long startoff; /* Debug start offset */
|
|
unsigned long endoff; /* Debug end offset */
|
|
char rtntyp; /* Return type (NEAR/FAR) */
|
|
char name[1]; /* Length-prefixed name */
|
|
} CV4PROCSYMTYPE;
|
|
|
|
typedef struct THUNKSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long parentsym; /* Offset of sym of enclosing proc */
|
|
unsigned long endsym; /* matching end */
|
|
unsigned long nextsym; /* Sym of closest following proc */
|
|
char ord; /* Type of thunk */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short seg; /* Seg of proc */
|
|
unsigned short len; /* Thunk length */
|
|
char name[1]; /* Thunk name */
|
|
union {
|
|
struct {
|
|
short delta; /* Size of adjustment */
|
|
char name[1]; /* Name of target function */
|
|
} adjustor;
|
|
short vtaboff; /* Offset into the vtable */
|
|
} variant;
|
|
} THUNKSYMTYPE;
|
|
|
|
typedef struct CV4BLKSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long parentsym; /* Offset of sym of enclosing proc */
|
|
unsigned long endsym; /* matching end */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short seg; /* Segment of code */
|
|
unsigned long len; /* Block length */
|
|
char name[1]; /* Length-prefixed name */
|
|
} CV4BLKSYMTYPE;
|
|
|
|
typedef struct CV4WITHSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long parentsym; /* Offset of sym of enclosing proc */
|
|
unsigned long endsym; /* matching end */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short seg; /* Segment of code */
|
|
unsigned long len; /* Length of scope */
|
|
char name[1]; /* String to be evaluated */
|
|
} CV4WITHSYMTYPE;
|
|
|
|
typedef struct CV4LABSYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short seg; /* Segment of code */
|
|
char rtntyp; /* Return type (NEAR/FAR) */
|
|
char name[1]; /* Length-prefixed name */
|
|
} CV4LABSYMTYPE;
|
|
|
|
typedef struct CV4CHANGESYMTYPE
|
|
{
|
|
unsigned char reclen; /* Record length */
|
|
unsigned char rectyp; /* Record type */
|
|
unsigned long off; /* Offset in code seg */
|
|
unsigned short seg; /* Segment of code */
|
|
char model; /* Execution model to change to */
|
|
char var[1]; /* Variant info (unspecified) */
|
|
} CV4CHANGESYMTYPE;
|
|
|
|
/* Far pointer definitions */
|
|
|
|
typedef BLKSYMTYPE *BLKSYMPTR; // Obsolete
|
|
typedef CONSYMTYPE *CONSYMPTR;
|
|
typedef REGSYMTYPE *REGSYMPTR;
|
|
typedef LOCSYMTYPE *LOCSYMPTR;
|
|
typedef LABSYMTYPE *LABSYMPTR; // Obsolete
|
|
typedef BPSYMTYPE *BPSYMPTR;
|
|
typedef WITHSYMTYPE *WITHSYMPTR; // Obsolete
|
|
typedef PROCSYMTYPE *PROCSYMPTR; // Obsolete
|
|
typedef TYPEDEFSYMTYPE *TYPEDEFSYMPTR;
|
|
typedef CV4PROCSYMTYPE *CV4PROCSYMPTR;
|
|
typedef THUNKSYMTYPE *THUNKSYMPTR;
|
|
typedef CV4BLKSYMTYPE *CV4BLKSYMPTR;
|
|
typedef CV4WITHSYMTYPE *CV4WITHSYMPTR;
|
|
typedef CV4LABSYMTYPE *CV4LABSYMPTR;
|
|
typedef CV4CHANGESYMTYPE *CV4CHANGESYMPTR;
|