Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
/ corefx Public archive

Use Portable PDBs and turn on SourceLink #24025

Merged
merged 5 commits into from
Oct 27, 2017

Conversation

vancem
Copy link
Contributor

@vancem vancem commented Sep 14, 2017

This pull request, as well as its companion in the CoreClr repository are tiny (they basically set an MSBUILD variable), but the result is that we generate Portable PDBs rather than MS-PDBs during the build).

The immediate value of this change is that we can turn on SourceLink support which allows Visual Studio to 'just work' and step into source it fetches from this Github repository. This is an important step in getting this working for our shipped builds.

It is possible to get SourceLink working without generating Portable PDBs but I believe we want to move in this direction sooner rather than later because.

  1. ASP.NET ships this way (and we expect most code will ship using Portable PDBs)
  2. This is the way we ship on Linux
  3. VSCode only supports portable PDBs (at least in my experimentation).
  4. Because of (1) we already have support for generating MS-PDBs from the portable ones and uploading them to Microsoft Symbol Servers (which currently only support

In short, uniformity is good, and this makes us significantly more uniform. The only issue is what 'breaks'. Because of (4), it is not clear that any important scenario is actually broken by the change. To the degree that we publish PDBs via the MS symbol server, those were converted before publication so things will work as the do now. For private builds, VS works with portable PDBs. Tests should be using portable (so they can run on Linux too). Now I am sure that we might break something, but we are likely to be close enough that it is easier/better to simply try it and clean it up (or revert it), if we run into issues.

But I have marked this NO-MERGE for the time being so that we can vet any concerns. If after several days of vetting we have addressed all concerns we would be in a position to proceed.

Please include anyone you believe may be impacted by this.

@dagood @mikem8361 @ericstj @jkotas @lt72 @Petermarcu @markwilkie @weshaggard @tmat @Eilon @karelz @danmosemsft

@vancem
Copy link
Contributor Author

vancem commented Sep 14, 2017

The corresponding coreCLR pull request is dotnet/coreclr#13964

@@ -163,6 +163,12 @@
<BuildingUAPAOTVertical Condition="'$(BuildingUAPAOTVertical)' == '' AND ('$(_bc_TargetGroup)'=='uapaot' OR '$(BuildAllConfigurations)' == 'true')">true</BuildingUAPAOTVertical>
</PropertyGroup>

<!-- Set the kind of PDB to Portable and turn on SourceLink (fetching source from GitHub) -->
<PropertyGroup>
<DebugType Condition="'$(DebugType)' == ''">Portable</DebugType>
Copy link
Member

@jkotas jkotas Sep 14, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: This makes the lines below that set DebugType to full/pdbonly unnecessary.

@mellinoe mellinoe added the * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) label Sep 14, 2017
@mellinoe
Copy link
Contributor

Previously, our Release builds were using "pdbonly" rather than "full" DebugType. Is there any such distinction for portable PDB's?

@stephentoub
Copy link
Member

Because of (4), it is not clear that any important scenario is actually broken by the change.

Does code coverage still work?

@danmoseley
Copy link
Member

presumably you will want to do this for Corelib as well?

Do all VS features that currently work with Windows PDB's on .NET Core (eg., profiling) work as well with portable PDB's?

@stephentoub
Copy link
Member

stephentoub commented Sep 14, 2017

Unfortunately this does break code coverage in corefx, e.g.

msbuild /t:rebuildandtest /p:Coverage=true

ends up failing to produce any output with:

  Committing...
  No results, this could be for a number of reasons. The most common reasons are:
      1) missing PDBs for the assemblies that match the filter please review the
      output file and refer to the Usage guide (Usage.rtf) about filters.
      2) the profiler may not be registered correctly, please refer to the Usage
      guide and the -register switch.

and:
image

@jkotas
Copy link
Member

jkotas commented Sep 14, 2017

Can we keep the Coverage builds on the legacy PDB plan for now? Or is the coverage expected to work on regular product build?

@stephentoub
Copy link
Member

stephentoub commented Sep 14, 2017

Can we keep the Coverage builds on the legacy PDB plan for now? Or is the coverage expected to work on regular product build?

Currently it's expected to work on a regular build, and most folks that do coverage locally don't do a full "coverage" build, but rather just do a normal build, and then just add the /p:Coverage=true flag when running tests.

But I'd be fine with a solution that allowed us to specify a flag to the build when building a src assembly to say "use a legacy PDB", either via a coverage-specific flag or via a pdb-specific flag. We'd need to update CI's coverage run to use that flag when building all assemblies, and individual devs can just specify that flag when building an individual assembly before doing coverage tests of that assembly... we'd just want to update the docs as well.

Whatever we do, it'd be good to include that as part of this change.

@stephentoub
Copy link
Member

And I guess we have such a flag with DebugType, assuming specifying it on the command-line overrides the build system. I'll try...

@stephentoub
Copy link
Member

Yeah, setting the DebugType at the command-line works, e.g.

C:\Users\stoub\Source\repos\corefx\src\System.Runtime.Numerics\tests>pushd ..\src & msbuild /t:rebuild /p:DebugType=pdbonly & popd & msbuild /t:rebuildandtest /p:Coverage=true

so we just need to update our docs and the targets/scripts used for the coverage runs to use the flag.

@jkotas
Copy link
Member

jkotas commented Sep 14, 2017

Adding <DebugType Condition="'$(Coverage)' == 'true'">pdbonly</DebugType> to dirs.props may be better. No need to change everything else.

@jkotas
Copy link
Member

jkotas commented Sep 14, 2017

Or we can run the PDB converter tool before invoking the coverage tool. It would make it work on regular builds.

@stephentoub
Copy link
Member

Adding pdbonly to dirs.props may be better.

I'm not sure that'd significantly improve things. The Coverage prop is only relevant on the test build/target, which doesn't rebuild any src libs, so it wouldn't actually help in the case I outlined (though maybe other folks do things differently and it would help them)... I'd still need to rebuild the src lib, I'd just type /t:rebuild /p:Coverage=true instead of /t:rebuild /p:DebugType=pdbonly.

Or we can run the PDB converter tool before invoking the coverage tool.

We could. Honestly I think it's fine to say the libs being tested/covered need to have been built with /p:DebugType=pdbonly. But if we can come up with something better, cool.

@dagood
Copy link
Member

dagood commented Sep 14, 2017

Or we can run the PDB converter tool before invoking the coverage tool. It would make it work on regular builds.

https://github.com/dotnet/core-eng/issues/1132 tracks putting the converted Windows PDBs in the symbol packages, and the best way I see to do that is convert during the build. It sounds like this lines up nicely.

@danmoseley
Copy link
Member

According to OpenCover/opencover#610 portable PDB support exists if you patch it with Mono.Cecil 0.10. However the maintainer of OpenCover is waiting for 0.10 to be marked stable before he updates his dependency. I pinged @jbevain to ask when this is likely to happen.

@karelz
Copy link
Member

karelz commented Oct 11, 2017

@vancem what is status and plan for this PR?

@vancem
Copy link
Contributor Author

vancem commented Oct 11, 2017

@karelz - I had been preempted for a while but I have gotten back to this in the past day or so. I was trying an option where we did not switch to portable PDBs (we upgraded the C# compiler so it is now possible to use SourceLink with MS-PDBs). Unfortunately. This works for coreCLR but CoreFX uses ILLink and it is broken, and like OpenCover it needs updated Mono.Cecil to work.

After some thought, I am leaning toward sticking with plan A (moving to portable). I am currently determining the fixes need not to break Coverage builds.

Progress is being made...

@vancem vancem force-pushed the PortablePdbsAndSourceServer branch from 1bb5116 to 134e5f8 Compare October 19, 2017 23:32
@vancem vancem removed the * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) label Oct 19, 2017
@vancem
Copy link
Contributor Author

vancem commented Oct 19, 2017

Removing NoMerge label. I want to proceed moving over to portable PDBs (and enabling SourceLink)

@vancem
Copy link
Contributor Author

vancem commented Oct 20, 2017

The windows build shows the AV that @dagood worried about in dotnet/buildtools#1740. The coverage build also failed, but it is not as clear why as it timed out after an exception as thrown (but we don't know which exception). It could be the same issue.

I will pursue this...

This makes us uniform.   Allows VSCode (which does not suport MSPdbs) use on Windows.
Also update docs about code coverage.
@vancem vancem force-pushed the PortablePdbsAndSourceServer branch from 4331453 to 54cfca5 Compare October 26, 2017 17:50
@vancem
Copy link
Contributor Author

vancem commented Oct 26, 2017

I believe I have fixed this reliability issue dotnet/buildtools#1740 and updating to build-tools 2.0.0-prerelease-02126-01 should bring that fix here.

@dotnet-bot test code coverage please

@vancem
Copy link
Contributor Author

vancem commented Oct 26, 2017

@dotnet-bot help

@dotnet-bot
Copy link

Welcome to the dotnet/corefx Repository

The following is a list of valid commands on this PR. To invoke a command, comment the indicated phrase on the PR

The following commands are valid for all PRs and repositories.

Click to expand
Comment Phrase Action
@dotnet-bot test this please Re-run all legs. Use sparingly
@dotnet-bot test ci please Generates (but does not run) jobs based on changes to the groovy job definitions in this branch
@dotnet-bot help Print this help message

The following jobs are launched by default for each PR against dotnet/corefx:master.

Click to expand
Comment Phrase Job Launched
@dotnet-bot test Linux x64 Release Build Linux x64 Release Build
@dotnet-bot test OSX x64 Debug Build OSX x64 Debug Build
@dotnet-bot test Packaging All Configurations x64 Debug Build Packaging All Configurations x64 Debug Build
@dotnet-bot test Windows x64 Debug Build Windows x64 Debug Build
@dotnet-bot test Windows x86 Release Build Windows x86 Release Build
@dotnet-bot test NETFX x86 Release Build NETFX x86 Release Build
@dotnet-bot test UWP CoreCLR x64 Debug Build UWP CoreCLR x64 Debug Build
@dotnet-bot test UWP NETNative x86 Release Build UWP NETNative x86 Release Build

The following optional jobs are available in PRs against dotnet/corefx:master.

Click to expand
Comment Phrase Job Launched
@dotnet-bot test CentOS.6 x64 Debug Build Queues CentOS.6 x64 Debug Build
@dotnet-bot test Outerloop CentOS.6 x64 Debug Build Queues Outerloop CentOS.6 x64 Debug Build
@dotnet-bot test CentOS.6 x64 Release Build Queues CentOS.6 x64 Release Build
@dotnet-bot test Outerloop CentOS.6 x64 Release Build Queues Outerloop CentOS.6 x64 Release Build
@dotnet-bot test Linux x64 Debug Build Queues Linux x64 Debug Build
@dotnet-bot test Outerloop Linux x64 Debug Build Queues Outerloop Linux x64 Debug Build
@dotnet-bot test Outerloop Linux x64 Release Build Queues Outerloop Linux x64 Release Build
@dotnet-bot test Outerloop OSX x64 Debug Build Queues Outerloop OSX x64 Debug Build
@dotnet-bot test OSX x64 Release Build Queues OSX x64 Release Build
@dotnet-bot test Outerloop OSX x64 Release Build Queues Outerloop OSX x64 Release Build
@dotnet-bot test Outerloop Packaging All Configurations x64 Debug Build Queues Outerloop Packaging All Configurations x64 Debug Build
@dotnet-bot test Packaging All Configurations x86 Debug Build Queues Packaging All Configurations x86 Debug Build
@dotnet-bot test Outerloop Packaging All Configurations x86 Debug Build Queues Outerloop Packaging All Configurations x86 Debug Build
@dotnet-bot test Packaging All Configurations x64 Release Build Queues Packaging All Configurations x64 Release Build
@dotnet-bot test Outerloop Packaging All Configurations x64 Release Build Queues Outerloop Packaging All Configurations x64 Release Build
@dotnet-bot test Packaging All Configurations x86 Release Build Queues Packaging All Configurations x86 Release Build
@dotnet-bot test Outerloop Packaging All Configurations x86 Release Build Queues Outerloop Packaging All Configurations x86 Release Build
@dotnet-bot test Outerloop Windows x64 Debug Build Queues Outerloop Windows x64 Debug Build
@dotnet-bot test Windows x86 Debug Build Queues Windows x86 Debug Build
@dotnet-bot test Outerloop Windows x86 Debug Build Queues Outerloop Windows x86 Debug Build
@dotnet-bot test Windows x64 Release Build Queues Windows x64 Release Build
@dotnet-bot test Outerloop Windows x64 Release Build Queues Outerloop Windows x64 Release Build
@dotnet-bot test Outerloop Windows x86 Release Build Queues Outerloop Windows x86 Release Build
@dotnet-bot test NETFX x64 Debug Build Queues NETFX x64 Debug Build
@dotnet-bot test Outerloop NETFX x64 Debug Build Queues Outerloop NETFX x64 Debug Build
@dotnet-bot test NETFX x86 Debug Build Queues NETFX x86 Debug Build
@dotnet-bot test Outerloop NETFX x86 Debug Build Queues Outerloop NETFX x86 Debug Build
@dotnet-bot test NETFX x64 Release Build Queues NETFX x64 Release Build
@dotnet-bot test Outerloop NETFX x64 Release Build Queues Outerloop NETFX x64 Release Build
@dotnet-bot test Outerloop NETFX x86 Release Build Queues Outerloop NETFX x86 Release Build
@dotnet-bot test Outerloop UWP CoreCLR x64 Debug Build Queues Outerloop UWP CoreCLR x64 Debug Build
@dotnet-bot test UWP CoreCLR x86 Debug Build Queues UWP CoreCLR x86 Debug Build
@dotnet-bot test Outerloop UWP CoreCLR x86 Debug Build Queues Outerloop UWP CoreCLR x86 Debug Build
@dotnet-bot test UWP CoreCLR x64 Release Build Queues UWP CoreCLR x64 Release Build
@dotnet-bot test Outerloop UWP CoreCLR x64 Release Build Queues Outerloop UWP CoreCLR x64 Release Build
@dotnet-bot test UWP CoreCLR x86 Release Build Queues UWP CoreCLR x86 Release Build
@dotnet-bot test Outerloop UWP CoreCLR x86 Release Build Queues Outerloop UWP CoreCLR x86 Release Build
@dotnet-bot test UWP NETNative x64 Debug Build Queues UWP NETNative x64 Debug Build
@dotnet-bot test Outerloop UWP NETNative x64 Debug Build Queues Outerloop UWP NETNative x64 Debug Build
@dotnet-bot test UWP NETNative x86 Debug Build Queues UWP NETNative x86 Debug Build
@dotnet-bot test Outerloop UWP NETNative x86 Debug Build Queues Outerloop UWP NETNative x86 Debug Build
@dotnet-bot test UWP NETNative x64 Release Build Queues UWP NETNative x64 Release Build
@dotnet-bot test Outerloop UWP NETNative x64 Release Build Queues Outerloop UWP NETNative x64 Release Build
@dotnet-bot test Outerloop UWP NETNative x86 Release Build Queues Outerloop UWP NETNative x86 Release Build

Have a nice day!

@vancem
Copy link
Contributor Author

vancem commented Oct 26, 2017

@dotnet-bot test this please

@dotnet-bot
Copy link

Welcome to the dotnet/corefx Repository

The following is a list of valid commands on this PR. To invoke a command, comment the indicated phrase on the PR

The following commands are valid for all PRs and repositories.

Click to expand
Comment Phrase Action
@dotnet-bot test this please Re-run all legs. Use sparingly
@dotnet-bot test ci please Generates (but does not run) jobs based on changes to the groovy job definitions in this branch
@dotnet-bot help Print this help message

The following jobs are launched by default for each PR against dotnet/corefx:master.

Click to expand
Comment Phrase Job Launched
@dotnet-bot test Linux arm Release Build Linux arm Release Build
@dotnet-bot test Tizen armel Debug Build Tizen armel Debug Build

The following optional jobs are available in PRs against dotnet/corefx:master.

Click to expand
Comment Phrase Job Launched
@dotnet-bot test innerloop CentOS7.1 Debug Queues Innerloop CentOS7.1 Debug x64 Build and Test
@dotnet-bot test innerloop CentOS7.1 Release Queues Innerloop CentOS7.1 Release x64 Build and Test
@dotnet-bot test code coverage Queues Code Coverage Windows Debug
@dotnet-bot test innerloop Debian8.4 Debug Queues Innerloop Debian8.4 Debug x64 Build and Test
@dotnet-bot test innerloop Debian8.4 Release Queues Innerloop Debian8.4 Release x64 Build and Test
@dotnet-bot test innerloop Fedora24 Debug Queues Innerloop Fedora24 Debug x64 Build and Test
@dotnet-bot test innerloop Fedora24 Release Queues Innerloop Fedora24 Release x64 Build and Test
@dotnet-bot test Linux arm Debug Queues Linux arm Debug Build
@dotnet-bot test code formatter check Queues Code Formatter Check
@dotnet-bot test innerloop OSX10.12 Debug Queues Innerloop OSX10.12 Debug x64 Build and Test
@dotnet-bot test innerloop OSX10.12 Release Queues Innerloop OSX10.12 Release x64 Build and Test
@dotnet-bot test outerloop netcoreapp CentOS7.1 Debug Queues OuterLoop netcoreapp CentOS7.1 Debug x64
@dotnet-bot test outerloop netcoreapp CentOS7.1 Release Queues OuterLoop netcoreapp CentOS7.1 Release x64
@dotnet-bot test outerloop netcoreapp Debian8.4 Debug Queues OuterLoop netcoreapp Debian8.4 Debug x64
@dotnet-bot test outerloop netcoreapp Debian8.4 Release Queues OuterLoop netcoreapp Debian8.4 Release x64
@dotnet-bot test outerloop netcoreapp Fedora24 Debug Queues OuterLoop netcoreapp Fedora24 Debug x64
@dotnet-bot test outerloop netcoreapp Fedora24 Release Queues OuterLoop netcoreapp Fedora24 Release x64
@dotnet-bot test outerloop netcoreapp OSX10.12 Debug Queues OuterLoop netcoreapp OSX10.12 Debug x64
@dotnet-bot test outerloop netcoreapp OSX10.12 Release Queues OuterLoop netcoreapp OSX10.12 Release x64
@dotnet-bot test outerloop netcoreapp PortableLinux Debug Queues OuterLoop netcoreapp PortableLinux Debug x64
@dotnet-bot test outerloop netcoreapp PortableLinux Release Queues OuterLoop netcoreapp PortableLinux Release x64
@dotnet-bot test outerloop netcoreapp RHEL7.2 Debug Queues OuterLoop netcoreapp RHEL7.2 Debug x64
@dotnet-bot test outerloop netcoreapp RHEL7.2 Release Queues OuterLoop netcoreapp RHEL7.2 Release x64
@dotnet-bot test outerloop netcoreapp Ubuntu14.04 Debug Queues OuterLoop netcoreapp Ubuntu14.04 Debug x64
@dotnet-bot test outerloop netcoreapp Ubuntu14.04 Release Queues OuterLoop netcoreapp Ubuntu14.04 Release x64
@dotnet-bot test outerloop netcoreapp Ubuntu16.04 Debug Queues OuterLoop netcoreapp Ubuntu16.04 Debug x64
@dotnet-bot test outerloop netcoreapp Ubuntu16.04 Release Queues OuterLoop netcoreapp Ubuntu16.04 Release x64
@dotnet-bot test outerloop netcoreapp Ubuntu16.10 Debug Queues OuterLoop netcoreapp Ubuntu16.10 Debug x64
@dotnet-bot test outerloop netcoreapp Ubuntu16.10 Release Queues OuterLoop netcoreapp Ubuntu16.10 Release x64
@dotnet-bot test outerloop netcoreapp Windows 7 Debug Queues OuterLoop netcoreapp Windows 7 Debug x64
@dotnet-bot test outerloop netcoreapp Windows 7 Release Queues OuterLoop netcoreapp Windows 7 Release x64
@dotnet-bot test outerloop netcoreapp Windows_NT Debug Queues OuterLoop netcoreapp Windows_NT Debug x64
@dotnet-bot test outerloop netcoreapp Windows_NT Release Queues OuterLoop netcoreapp Windows_NT Release x64
@dotnet-bot test innerloop PortableLinux Debug Queues Innerloop PortableLinux Debug x64 Build and Test
@dotnet-bot test innerloop PortableLinux Release Queues Innerloop PortableLinux Release x64 Build and Test
@dotnet-bot test innerloop RHEL7.2 Debug Queues Innerloop RHEL7.2 Debug x64 Build and Test
@dotnet-bot test innerloop RHEL7.2 Release Queues Innerloop RHEL7.2 Release x64 Build and Test
@dotnet-bot test Tizen armel Release Queues Tizen armel Release Build
@dotnet-bot test innerloop Ubuntu14.04 Debug Queues Innerloop Ubuntu14.04 Debug x64 Build and Test
@dotnet-bot test innerloop Ubuntu14.04 Release Queues Innerloop Ubuntu14.04 Release x64 Build and Test
@dotnet-bot test innerloop Ubuntu16.04 Debug Queues Innerloop Ubuntu16.04 Debug x64 Build and Test
@dotnet-bot test innerloop Ubuntu16.04 Release Queues Innerloop Ubuntu16.04 Release x64 Build and Test
@dotnet-bot test innerloop Ubuntu16.10 Debug Queues Innerloop Ubuntu16.10 Debug x64 Build and Test
@dotnet-bot test innerloop Ubuntu16.10 Release Queues Innerloop Ubuntu16.10 Release x64 Build and Test
@dotnet-bot test innerloop Windows_NT Debug Queues Innerloop Windows_NT Debug x86 Build and Test
@dotnet-bot test innerloop Windows_NT Release Queues Innerloop Windows_NT Release x64 Build and Test

Have a nice day!

@vancem
Copy link
Contributor Author

vancem commented Oct 26, 2017

Coverage runs work properly. Here is the run above.
https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/63/artifact/bin/tests/coverage/index.htm.

There is one more update to the build tools that I would like to get in, but things look good. If anyone has a problem with the change to use portable PDBS please speak now.

@vancem
Copy link
Contributor Author

vancem commented Oct 27, 2017

@dotnet-bot test code coverage please

vancem added a commit to vancem/coreclr that referenced this pull request Oct 27, 2017
When dotnet/corefx#24025 goes through to change coreFX over to use portable PDBs we want to do the same for System.private.Corelib.pdb in CoreCLR.   This change does this.
@danmoseley
Copy link
Member

@vancem I've seen quite a few cases in build logs where your PDB converter tool is failing to find a component and throwing an exception -- without breaking the build. Is that relevant or a concern? I can find one if needed.

@danmoseley
Copy link
Member

Ah, it may be because GenerateWindowsPdbsForAssemblyBeingTested is running on Unix, which won't ever work.

@vancem
Copy link
Contributor Author

vancem commented Oct 27, 2017

@danmosemsft

@vancem I've seen quite a few cases in build logs where your PDB converter tool is failing to find a component and throwing an exception -- without breaking the build. Is that relevant or a concern?

Yes, your bug https://github.com/dotnet/corefx/issues/24807 alerted me to this. As you have figured out. this task was not supposed to run at all except on windows platforms. The fix was easy (only run it on windows). However the fix is in the build-tools nuget package, so it is a two-step process to fix it. It has been fixed in build-tools (see dotnet/buildtools#1764) and in fact this PR will cause CoreFX to use this fixed Nuget package. Thus this PR should fix all those warnings you are getting.

Note that that issue is independent of whether portable PDBS are used or not on windows (which is what this change is about).

@danmoseley
Copy link
Member

OK thanks I somehow missed your earlier reply.

@vancem
Copy link
Contributor Author

vancem commented Oct 27, 2017

OK I have put in the last update to build-tools (that will address Dan's issue).

Code coverage works. Here is the report that was generated by the CI system (since I asked dotnetbot for code coverage.

https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/65/artifact/bin/tests/coverage/index.htm

I would like to check this in later today (along with dotnet/coreclr#14721 which makes coreclr generate portable pdbs).

Any last worries? (as mentioned ASP.NET has been on the portable PDB plan for a while now, so we know that the 'basics' have to work).

Note that this moves us in the direction we want, but also unblocks turning on SourceLink, which allows Visual Studio users to fetch the correct source code straight from the GitHub (this is what has been driving me to put in the effort).

@danmoseley
Copy link
Member

No concerns from me

@vancem vancem merged commit 968cfcf into dotnet:master Oct 27, 2017
@vancem
Copy link
Contributor Author

vancem commented Oct 28, 2017

Issue dotnet/coreclr#14721 turns on portable PDBs for coreCLR

vancem added a commit to dotnet/coreclr that referenced this pull request Oct 28, 2017
When dotnet/corefx#24025 goes through to change coreFX over to use portable PDBs we want to do the same for System.private.Corelib.pdb in CoreCLR.   This change does this.
@karelz karelz added this to the 2.1.0 milestone Oct 28, 2017
@danmoseley
Copy link
Member

This breaks ILSpy also -- fix is to rename the PDB temporarily. Taht needs updated Mono.Cecil also. JB says maybe end of the week.

@manjushavnair
Copy link

i am getting the exact error stephentoub mentioned while running .net 4.5,VS 2015,OpenCover.4.6.519, windows 10 and msbuild .All items shows zero as mentioned in the image above

Committing...
No results, this could be for a number of reasons. The most common reasons are:
1) missing PDBs for the assemblies that match the filter please review the
output file and refer to the Usage guide (Usage.rtf) about filters.
2) the profiler may not be registered correctly, please refer to the Usage
guide and the -register switch.
and:
image

picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
…rceServer

Use Portable PDBs and turn on SourceLink

Commit migrated from dotnet/corefx@968cfcf
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants