Debug Symbols without Development Build?

So, when I do a Development build of a game for the Windows platform, it generates a 36mb pdb file with a date of 11/30/2009. This is odd, because my actual C# dll itself is only 876kb. So I'd expect the pdb for that to be 4-5mb at absolute most.

In past .NET projects I have found it very helpful to do a release build with symbols included. I'm not paranoid about people stealing my code via the symbols, and having the symbols included allows for them to be loaded into memory upon a crash, and thus produce a handy line number of the crash report. This works out well for me, because any slowdown is pretty imperceptible, and I get super-accurate and helpful crash reports for when crashes do happen.

I'd like to set something similar up with Unity, but distributing 36mb of symbols with every beta version I put out would be a real bandwidth drain. Though, given the file date of those symbols, maybe they don't really need to be updated? I'm not entirely clear how all this is hooking together behind the scenes, given that this is Mono hosted inside a more native application.

Any suggestions, or info about how this works internally?

I know this is a few years on, but did you ever find a solution to this? I’m attempting to generate a pdb for our non-development build for exactly this reason (trying to diagnose a crash) and I’m not having much luck.

I was hoping to do the build manually in mono and changing the project settings, but it seems the actual exe generation happens in a way that’s not really reproducible without the editor itself doing it. I mean, it should be, but Unity doesn’t expose its actual mono build commandline parameters. I think they’re copied into a temporary file during the build, and I haven’t been able to grab any of those temp files quickly enough before Unity disposes of them.

Any info is appreciated :slight_smile: