Skip to content

Provide a default packaging hook for compressing PDB debug symbols from MSF to MSFZ format #231

@Ext3h

Description

@Ext3h

Even though there already is a hook in place that can extract the PDB files which are in MSF format from the build tree, the MSF format itself is typically a huge waste of space when it resides in an uncompressed conan package.

Recently, Microsoft had added a newer version of this format, MSFZ which has added block compression with ZSTD by default. As far as debuggers and symbol servers go, this format is universally preferred over the uncompressed MSF format.

As gz with its effectively low compression ratio ist still going to be a default for the forseeable future, having ZSTD compressed debug information on the inside can also be expected to provide huge savings for compressed conan packages too.

There exists an open source tool for converting MSF to MSFZ files: https://github.com/ynwarcs/pdbconv

The conversion is reversible if compatibility with older tools is required that may not understand MSF yet. The conversion should not be applied within the build tree, as it's incompatible with any potential incremental patches to the PDB file, but can safely be applied as soon as the symbol files have been copied out into the package folder.

Note:
There is no equivalent for PDB7 symbol files (compiler output, not linker output!). Those have to be packaged as-is for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions