Debugging information 'embedded' and 'portable', what are they for?

.net, visual-studio, visual-studio-2017

Solution

.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.

- The 'portable' option creates a portable symbol file with pdb extension next to the assembly.

- The 'embedded' option embeds the portable symbol information into the assembly. No extra pdb file will be created.

Problem

I found those new options under "Debugging Information" in the "Advanced Build Settings" for .Net assemblies. I'm not sure what are those options for, google tells me that 'portable' is related to mono (maybe linux/os:2 code editors use another type of pdb?). Anyone knows exactly what are those options used for?

Original source