[ACCEPTED]-Do you have to deploy the .pdb file with compiling under release?-release-management

Accepted answer
Score: 37

No you do not need to deploy them.

As to 9 why they are even built in release. A PDB 8 file really has a couple of uses but the 7 primary ones (at least for me) are

  1. Debugging
  2. Profiling

Both 6 of these tasks are validly done on release 5 binaries which is why release builds include 4 a PDB. In fact, when debugging Watson dumps 3 it's 100% of the time against a release 2 build. Without a PDB I would have to resort 1 to looking through dissasembly :(

Score: 10

You don't have to deploy and distribute 7 the PDB files along with your binaries.

However, I 6 suggest that you keep them (and eventually 5 index them) to be able to analyze any dump 4 files that clients, QA, and support people 3 send you. This way, you will be able to 2 have comprehensible stack traces and symbol 1 information.

Score: 6

If you want, you can also turn the PDB file 1 generation off in the compile options.

Score: 5

PDB files contain debug symbols that allow 6 you to debug your binary even in release mode. You don't have 5 to (and probably shouldn't deploy them), as 4 they might be used to reverse engineer your 3 application. Do keep them archived somewhere, though, because 2 they come in very handy when you want to 1 debug a crash dump.

Score: 4

a PDB file contains information about names 9 of functions. You need it to be able to 8 get a stack trace. It can also contain information 7 about mapping it to sources. Sometimes you 6 might want to ship your release version, and 5 still need to analyze a crash that occurs 4 on the client side. For that, the PDB is 3 needed. The PDB when compiling for release 2 should in theory have less information than 1 when compiling for debug.

Score: 2

Nope. You don't need to distribute them. It'll 6 help with debugging (or I should say it 5 will make debugging possible for sane people).

You 4 can also turn off or adjust the 'level' of 3 symbols generated in Visual Studio -- just 2 go to Project Properties / 'Build' tab / 'Advanced' -- and 1 make adjustments to the 'Debug info' field.

Score: 2

As the majority of the people on this thread 10 have said: no, you don't have to ship the 9 PDB file(s); but really you should if you 8 ever intend to release the code into the 7 wild.

It's really about being able to support 6 your application. Without the PDB, when 5 you application crashes, all your user will 4 be able to tell you is the raw memory address 3 of where the application crashed; but with 2 the PDB file you get an error you can actually 1 do something about.

Score: 0

No, you don't ship the .pdb files. They 2 are generated because sometimes it's helpful 1 to be able to debug a release build.

Score: 0

Some tools like AVICode's InterceptStudio 5 use the pdb files to view the source of 4 a particular exception/stack trace/local 3 from within the tool, rather than having 2 to open up the source and go to a specific 1 line.

Score: 0

You don't need them to run.

pdb files can 2 be used to debug even if the build is on 1 release configuration.

More Related questions