{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/corefx/issues/7756","repository_url":"https://api.github.com/repos/dotnet/corefx","labels_url":"https://api.github.com/repos/dotnet/corefx/issues/7756/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/7756/comments","events_url":"https://api.github.com/repos/dotnet/corefx/issues/7756/events","html_url":"https://github.com/dotnet/corefx/pull/7756","id":148464021,"number":7756,"title":"Create xplat and Windows native symbol packages","user":{"login":"dagood","id":12819531,"avatar_url":"https://avatars.githubusercontent.com/u/12819531?v=3","gravatar_id":"","url":"https://api.github.com/users/dagood","html_url":"https://github.com/dagood","followers_url":"https://api.github.com/users/dagood/followers","following_url":"https://api.github.com/users/dagood/following{/other_user}","gists_url":"https://api.github.com/users/dagood/gists{/gist_id}","starred_url":"https://api.github.com/users/dagood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dagood/subscriptions","organizations_url":"https://api.github.com/users/dagood/orgs","repos_url":"https://api.github.com/users/dagood/repos","events_url":"https://api.github.com/users/dagood/events{/privacy}","received_events_url":"https://api.github.com/users/dagood/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/corefx/labels/2%20-%20In%20Progress","name":"2 - In Progress","color":"CCCCCC"},{"url":"https://api.github.com/repos/dotnet/corefx/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-04-14T19:50:19Z","updated_at":"2016-04-15T01:00:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/7756","html_url":"https://github.com/dotnet/corefx/pull/7756","diff_url":"https://github.com/dotnet/corefx/pull/7756.diff","patch_url":"https://github.com/dotnet/corefx/pull/7756.patch"},"body":"On Windows, in Debug configuration, creates symbol packages with the `.pdb` from the native build.\r\n\r\nOn Linux/OSX, in Release configuration, creates symbol packages with symbols that have been stripped from the release library. On Linux the symbol files are `.so.dbg`, on OSX `.dylib.dwarf`.\r\n\r\nThe symbol stripping code is from https://github.com/dotnet/coreclr/blob/afdce3a592e/CMakeLists.txt#L279-L340 as well as some simplified platform detection logic from earlier in that file. I also looked at the PRs for stripping coreclr symbols (https://github.com/dotnet/coreclr/pull/3872) and creating coreclr symbol packages (https://github.com/dotnet/coreclr/pull/4218) a lot while making these changes.\r\n\r\nI've tested on Win10, OSX 10.11, and Ubuntu 14.04.4. I've uploaded the packages to a test gallery: https://www.myget.org/gallery/dagood-test-native-symbols-corefx. (All release packages plus the Windows Debug symbol package.) You can check out the symbol packages by clicking the \"more\" links or directly downloading by URL convention. **I have not tried to debug with these symbols**--I don't know how to set up a reasonable scenario.\r\n\r\nI had to rig a few things to test this out (I'll be looking into them further):\r\n* On OSX, I had to force my `RuntimeOS` to `osx.10.10` in `build-packages.sh`. It's being used to filter which packages are created, and my `osx.10.11` resulted in no runtime packages being made.\r\n* On all platforms I passed `/p:ConfigurationGroup=Debug` (or `Release`) to `build-packages`. The command should probably have a switch built in.\r\n* On Windows I also passed `/p:OSGroupPath=Windows_NT`. Otherwise packaging would look in `bin/.x64.Release/Native`, which doesn't exist.\r\n\r\nI'm working on testing this out in a TFS build. I'm not familiar with the paths used to create native packages there, so I'm anticipating some tweaks.\r\n\r\n/cc @ericstj @weshaggard @brianrob"},"comment":{"url":"https://api.github.com/repos/dotnet/corefx/issues/comments/210230228","html_url":"https://github.com/dotnet/corefx/pull/7756#issuecomment-210230228","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/7756","id":210230228,"user":{"login":"ellismg","id":9602953,"avatar_url":"https://avatars.githubusercontent.com/u/9602953?v=3","gravatar_id":"","url":"https://api.github.com/users/ellismg","html_url":"https://github.com/ellismg","followers_url":"https://api.github.com/users/ellismg/followers","following_url":"https://api.github.com/users/ellismg/following{/other_user}","gists_url":"https://api.github.com/users/ellismg/gists{/gist_id}","starred_url":"https://api.github.com/users/ellismg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ellismg/subscriptions","organizations_url":"https://api.github.com/users/ellismg/orgs","repos_url":"https://api.github.com/users/ellismg/repos","events_url":"https://api.github.com/users/ellismg/events{/privacy}","received_events_url":"https://api.github.com/users/ellismg/received_events","type":"User","site_admin":false},"created_at":"2016-04-15T01:00:56Z","updated_at":"2016-04-15T01:00:56Z","body":"> You can check out the symbol packages by clicking the \"more\" links or directly downloading by URL convention. I have not tried to debug with these symbols--I don't know how to set up a reasonable scenario.\r\n\r\nOn windows, you could consider using `symchk` (which comes with the debugging tools for windows) to ensure that the symbols in the package are private symbols and line up with the binaries we are producing.\r\n\r\n@mikem8361 might know if there is a similar tool on OSX/Linux to ensure that the a symbol file matches up to a `.so`"}}