2 | 2 | 1 | 3 | * |
length | S_COMPILE | machine | flags | version |
machine enumeration specifying target processor. Values not specified below are reserved.
0x00 Intel 8080
0x01 Intel 8086
0x02 Intel 80286
0x03 Intel 80386
0x04 Intel 80486
0x05 Intel Pentium
0x06 Intel Pentium Pro
0x10 MIPS R4000
0x11 Reserved for future MIPS processor
0x12 Reserved for future MIPS processor
0x20 MC68000
0x21 MC68010
0x22 MC68020
0x23 MC68030
0x24 MC68040
0x30 DEC Alpha
0x40 PPC601
0x41 PPC603
0x42 PPC604
0x43 PPC620
flags flags showing compile time options
Language :8
PCodePresent :1
FloatPrecision :2
FloatPackage :2
AmbientData :3
AmbientCode :3
Mode32 :1 Compiled for 32 bit addresses
Reserved :4
Language enumeration
0 C
1 C++
2 Fortran
3 Masm
4 Pascal
5 Basic
6 Cobol
7 - 255 Reserved
Ambient code and data memory model enumeration
0 Near
1 Far
2 Huge
3 - 7 Reserved
Floating package enumeration
0 Hardware processor (80x87 for Intel 80x86 processors)
1 Emulator
2 Altmath
3 Reserved
The FloatPrecision flag is set to 1 if the compiler follows the ANSI C floating point precision rules. This is specified to Microsoft C compilers by setting the -Op option.
version Length-prefixed string specifying language processor version. Language processors can place additional data in version string if desired.
2 | 2 | 4 | 2 | * | * |
length | S_REGISTER | @type | register | name | tracking |
@type The type of the symbol
register Enumerate of the registers in which the symbol value is stored. This field is treated as two bytes. The high order byte specifies the register in which the high order part of the value is stored. The low byte specifies the register for the low order part of the value. If the value is not stored in two registers then high order regisr field contains the enumerate value for no register. For register enumeration values, see Section 6. The register index enumeration is specific to the processor model for the module.
name Length-prefixed name of the symbol stored in the register
tracking Register tracking information. Format unspecified.
2 | 2 | 4 | * | * |
length | S_CONSTANT | @type | value | name |
@type Type of symbol or containing enum
value Numeric leaf containing the value of symbol
name Length-prefixed name of symbol
2 | 2 | 4 | * |
length | S_UDT | @type | name |
@type Type of symbol
name Length-prefixed name of the user defined type
2 | 2 | 4 | 2 |
length | S_SSEARCH | sym off | segment |
sym off $$SYMBOL offset of the procedure or thunk record for this module that has the lowest offset for the specified segment. See Section 1.2 on lexical scope linking.
segment Segment (PE section) that this Start Search refers to
2 | 2 |
length | S_END |
2 | 2 | * |
length | S_SKIP | skip data |
skip data Unused data. Use the length field that precedes every symbol record to skip this record.
2 | 2 | 4 | * |
length | S_OBJNAME | signature | name |
signature Signature for the CodeView information contained in this module. If the object file contains precompiled types, then the signature will be checked against the signature in the LF_PRECOMP type record contained in the $$TYPES table for the user of the precompiled types. The signature check is used to detect recompilation of the supplier of the precompiled types without recompilation of all of the users of the precompiled types. The method for computing the signature is unspecified. It should be sufficiently robust to detect failures to recompile.
name Length prefixed name of the object file without any path information prepended to the name.
2 | 2 |
length | S_ENDARG |
2 | 2 | 4 | * |
length | S_COBOLUDT | @type | name |
@type Type of symbol
name Length-prefixed name of the user defined type
2 | 2 | 4 | 1 | 1 * count | * |
length | S_MANYREG | @type | count | reglist | name |
@type Type index of the symbol
count Count of the register enumerates that follow
reglist List of registers in which the symbol is stored. The registers are listed high order register first.
name Name of the symbol
2 | 2 | 2 | 1 | * |
length | S_RETURN | flags | style | data |
flags Flags for function call
cstyle :1 push varargs right to left if true
rsclean :1 returnee stack cleanup if true
unused :14
style Function return style
0x00 void return
0x01 return value is in registers specified in data
0x02 indirect caller allocated near
0x03 indirect caller allocated far
0x04 indirect returnee allocated near
0x05 indirect returnee allocated far
data Data required by function return style.
If style is 0x01, then data is the format
1 | 1 * count |
count | reglist |
count Count of the number of registers
reglist Registers (high order first) containing the value
2 | 2 | * |
length | S_ENTRYTHIS | symbol |
symbol Full symbol including length and symbol type fields that describes the this pointer.