Need to deploy .pdb file with compilation in release?

Need to deploy .pdb file with compilation in release?

Why does it even compile .pdb when you create the release anyway?

+45
deployment release-management
Mar 03 '09 at 20:23
source share
11 answers

No, you do not need to deploy them.

About why they are even created in the release. The PDB file does have several uses, but the primary ones (at least for me) are

  • Debugging
  • Profiling

Both of these tasks are actually performed in release binaries, so release builds include PDB. In fact, when debugging Watson resets it 100% of the time against release builds. Without a PDB, I would have to resort to finding a disassembly :(

+36
Mar 03 '09 at 20:26
source share

You do not need to deploy and distribute PDB files with your binaries.

However, I suggest you save them (and ultimately index them) so that you can analyze any dump files that clients, QA, and support users send you. This way, you can have clear stack traces and character information.

+9
Mar 03 '09 at 20:36
source share

If you want, you can also disable PDB file generation in compilation options.

+6
Mar 03 '09 at 20:25
source share

The PDB file contains information about function names. You need this to get the stack trace. It may also contain information on its comparison with sources. Sometimes you can submit your release version and still analyze the crash that occurs on the client side. This requires a PDB. When compiling for release, the PDB should theoretically have less information than when compiling for debugging.

+4
Mar 03 '09 at 20:29
source share

PDB files contain debugging symbols that allow you to debug your binary even in release mode. You don't have to (and probably shouldn't deploy them), as they can be used to reverse-engineer your application. However, keep them in the archive somewhere, because they are very convenient when you want to debug a crash dump.

+3
Mar 03 '09 at 20:29
source share

Nope. You do not need to distribute them. This will help with debugging (or should I say that this will make debugging possible for normal people).

You can also disable or adjust the "level" of characters generated in Visual Studio - just go to the "Project Properties" / "Create" / "Advanced" tab and make changes to the "Debugging Information" field.

+2
Mar 03 '09 at 20:27
source share

Since most people in this thread said: no, you do not need to send PDB files (s); but really you need it if you ever intend to release the code into the wild.

This is really about supporting your application. Without PDB, when you run the application, all that your user can tell you is the raw memory address in which the application was broken; but with the PDB file you get an error message that you really can do something about.

+1
Mar 03 '09 at 20:38
source share

No, you are not sending .pdb files. They are generated because it is sometimes useful to be able to debug the build of the release.

0
Mar 03 '09 at 20:26
source share

Some tools, such as AVICode InterceptStudio, use pdb files to view the source of a specific exception / stack / local path from the tool, instead of opening the source and going to a specific line.

0
Mar 03 '09 at 20:27
source share

You do not need to run them.

The pdb files can be used for debugging even if the assembly is in the release configuration.

0
Mar 03 '09 at 20:36
source share

No, you do not need to deploy the .pdb file.

For a quote from MSDN : β€œThe PDB file is created when created using / debug (Visual Basic / C #).”, So it should not create a debug database when compiling for release.

-four
Mar 03 '09 at 20:25
source share



All Articles