Skip to content
This repository was archived by the owner on Apr 27, 2023. It is now read-only.
This repository was archived by the owner on Apr 27, 2023. It is now read-only.

cvdump does not recognize symbol type 0x1168. PDB generated by VS 2017 C++. #29

@mrolle45

Description

@mrolle45

I compiled a file containing a call to an inline function, using VS 2017. Running cvdump.exe produces an error message about a symbol record type 1168 (which is hex). Apparently, the new VS 2017 toolset is producing this record, and your cvinfo.h does not include it in the SYM_ENUM_e type.
I looked at this record in the PDB, and it contains the number 2, and type IDs for the two inline functions called in a function.
cvinfo.h needs updating. This is especially important as this file is being cited in various other web resources as the 'official' documentation of the symbol records in a PDB.
I also ran cvinfo.h on the OBJ file, with the same result.

Here's my example:

__inline int inl(int x)
{
return x + 1;
}

extern "C"
int seh(void)
{
X xx;
int x = xx.foo ();
x = inl(x);
...

cvdump output is:

(000728) S_GPROC32: [0002:00001F40], Cb: 00000084, Type: 0x2249, seh
Parent: 00000000, End: 000008E4, Next: 00000000
Debug start: 0000000E, Debug end: 0000007E

(000754) S_FRAMEPROC:
Frame size = 0x00000060 bytes
Pad size = 0x00000040 bytes
Offset of pad in frame = 0x00000020
Size of callee save registers = 0x00000000
Address of exception handler = 0000:00000000
Function info: seh invalid_pgo_counts opt_for_speed Local=rbp Param=rbp (0x00128040)
Error: unknown symbol record type 1168!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions