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

How does the open-sourced portable PDB from .NET team relates to this repo? #30

Open
ghost opened this issue Feb 8, 2018 · 6 comments

Comments

@ghost
Copy link

ghost commented Feb 8, 2018

.NET Core introduces a new symbol file (PDB) format - portable PDBs. Unlike traditional PDBs which are Windows-only, portable PDBs can be created and read on all platforms.

https://github.com/dotnet/core/blob/master/Documentation/diagnostics/portable_pdb.md

https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/specs/PortablePdb-Metadata.md

Will VC projects ever use portable PDB?

@skochinsky
Copy link

Portable PDB seems to be intended for CLI languages and does not offer any benefits for Visual C++ as far as I can see, so I doubt it.

@ghost
Copy link
Author

ghost commented Feb 9, 2018

One benefit I see is it's an open specification that contributors of tools (editors, symbol converters and such) can conveniently reason about and evolve by sharing their experience and even code contributions, if VC++ also embrace it. Compared to this, classic PDB (or full-PDB as the project system team chose to call it) does not provide additional benefit and hassle for Microsoft to maintain if moving forward, portable-PDB is the way to go in .NET Core as well as .NET Framework across operating systems).

@paddymcd-MSFT
Copy link

The Portable PDB was designed to serve as a debug file format for .NET binaries for cross platform purposes. As such it has a tight coupling with concepts that can only be relied upon in those binaries and which are not present in native images. This basically makes it a non-starter for C/C++

@ghost
Copy link
Author

ghost commented Feb 10, 2018

Full PDB

A generic symbol file format that only works on Windows but is supported by C/C++ toolchain as well as .NET Framework.

Portable PDB

A cross-platform, but .NET specific, symbol file format.


If this is a correct understanding then I didn't knew about ".NET specific" bit. If it's so impartially .NET centric, then calling it "portable PDB" sounds like a wrong choice of name and confusing.

cc @tmat, @noahfalk

@eriawan
Copy link

eriawan commented Apr 19, 2018

@kasper3

yes, you are correct. Just for additional clarification, Portable PDB is PDB for .NET, and it is only targeted for .NET Core.

The definition is stated here: https://github.com/dotnet/core/blob/master/Documentation/diagnostics/portable_pdb.md

.NET Core introduces a new symbol file (PDB) format - portable PDBs. Unlike traditional PDBs which are Windows-only, portable PDBs can be created and read on all platforms.

@pkrukp
Copy link

pkrukp commented Jun 22, 2018

You can use it for .net framework (not only .net core).
Although I'm not sure if everything is working correctly, there's some discussion about it in microsoft/dotnet#529

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants