2 | 2 | 4 | 4 | * |
length | S_BPREL32 | offset | @type | name |
offset Signed offset relative to BP. If offset is 0, then the symbol was assigned to a register or never instantiated by the optimizer and cannot be evaluated because its location is unknown.
@type Type of the symbol
name Length-prefixed name of the symbol
2 | 2 | 4 | 4 | 2 | * |
length | S_LDATA32 | @type | offset | segment | name |
@type Type index of the symbol.
offset Offset portion of the symbol address.
segment Segment portion of the symbol. address
name Length-prefixed name of symbol
2 | 2 | 4 | 4 | 4 | 4 | 4 | |
length | symbol | pParent | pEnd | pNext | proc length | debug start | -> |
4 | 4 | 4 | 2 | 1 | * |
debug end | @proctype | offset | segment | flags | name |
symbol S_LPROC32 or S_GPROC32.
pParent See the section on lexical scope linking
pEnd See the section on lexical scope linking
pNext See the section on lexical scope linking
proc length Length in bytes of this procedure
debug start Offset in bytes from the start of the procedure to the point where the stack frame has been set up. Parameter and frame variables can be viewed at this point.
debug end Offset in bytes from the start of the procedure to the point where the procedure is ready to return and has calculated its return value, if any. Frame and register variables can still be viewed.
@proctype Type of the procedure type record
offset Offset portion of the procedure address
segment Segment portion of the procedure address
flags Procedure flags:
fpo :1 true if function has frame pointer omitted
interrupt :1 true if function is interrupt routine
return :1 true if function performs far return
never :1 true if function never returns
unused :4
name Length-prefixed name of procedure
2 | 2 | 4 | 4 | 4 | 4 | 2 |
length | S_THUNK32 | pParent | pEnd | pNext | offset | segment |
2 | 1 | * | * |
thunk length | ordinal | name | variant |
pParent See the section on lexical scope linking
pEnd See the section on lexical scope linking
pNext See the section on lexical scope linking
offset Offset portion of the thunk address
segment Segment portion of the thunk address
thunk length Length in bytes of this thunk
ordinal Ordinal specifying the type of thunk
0 notype
1 adjustor
2 vcall
3 pcode
name Length-prefixed name of thunk
variant Variant field, depending on value of ordinal. If ordinal is notype, there is no variant field. If ordinal is adjustor, the variant field is a two-byte signed value specifying the delta to be added to the this pointer, followed by the length prefixed name of the target function. If the ordinal is vcall, then the variant field is a two-byte signed displacement into the virtual table. If ordinal is pcode, the variant is the seg:offset of the pcode entry point.
2 | 2 | 4 | 4 | 4 | 4 | 2 | * |
length | S_BLOCK32 | pParent | pEnd | length | offset | segment | name |
pParent See the section on lexical scope linking.
pEnd See the section on lexical scope linking.
length Length in bytes of the scope of this block
offset Offset portion of the segmented procedure address
segment Segment portion of the segmented procedure address
name Length-prefixed name of the block
2 | 2 | 4 | 4 | 4 | 4 | 2 | * |
length | S_WITH32 | pParent | pEnd | length | offset | segment | expr |
pParent See the section on lexical scope linking
pEnd See the section on lexical scope linking
length Length in bytes of the scope of the with block.
offset Offset portion of the segmented address of the start of the block
segment Segment portion of the segmented address of the start of the block
expr Length-prefixed ASCII string, evaluated at run time, of the expression used in the with statement.
2 | 2 | 4 | 2 | 1 | * |
length | S_LABEL32 | offset | segment | flags | name |
offset Offset portion of the segmented address of the start of the block
segment Segment portion of the segmented address of the start of the block
flags Label flags. This uses the same flag definition as in the S_LPROC16 symbol record.
fpo :1 true if function has frame pointer omitted
interrupt :1 true if function is interrupt routine
return :1 true if function performs far return
never :1 true if function never returns
unused :4
name Length prefixed name of label
2 | 2 | 4 | 2 | 2 | * |
length | S_CEXMODEL32 | offset | segment | model | variant |
offset Offset portion of start of the block
segment Segment portion of the start of block
model The execution model.
0x00 Not executable code (e.g., a table)
0x01 Compiler generated jump table
0x02 Padding for data
0x03 - 0x1f Reserved for specific noncode types.
0x20 Native model (no processor specified)
0x21 Microfocus Cobol (unused in 16:32)
0x22 Code padding for alignment
0x23 Code
0x24 - 0x3f Reserved
0x40 Pcode (Reserved)
variant Variable data dependent upon the execution model field. If the variant record contains segment or offset information, then CVPACK and CodeView must be modified to process the segment information.
The other models do not have variant fields.2 | 2 | 4 | 4 | 4 | 2 |
length | S_VFTTABLE32 | @root | @path | offset | segment |
@root The type index of the class at the root of the path
@path Type index of the record describing the base class path from the root to the leaf class for the virtual function table.
offset Offset portion of start of the virtual function table
segment Segment portion of the virtual function table
2 | 2 | 4 | 4 | 2 | * |
length | S_REGREL32 | offset | @type | register | name |
offset Signed offset relative to register.
@type Type of the symbol
register Register enumerates on which the symbol is based. Note that the register field can specify a pair of register such as ES:EBX
name Length-prefixed name of the symbol
2 | 2 | 4 | 4 | 2 | * |
length | S_LTHREAD32 | @type | offset | segment | name |
@type type index
offset offset into thread local storage
segment segment of thread local storage
name length prefixed name