dan gibson
dan gibson

Reputation: 3665

Is there any reason to not ship the pdb's with your application?

Since you can use reflector to reverse-engineer a .Net app, is there any reason to NOT ship the pdb files with the app? If you do ship them with it, then your stack trace will include the line number with the problem, which is useful if it crashes.

Please only enter 1 reason per comment for voting.

Upvotes: 8

Views: 2279

Answers (6)

Kirill V. Lyadvinsky
Kirill V. Lyadvinsky

Reputation: 99585

Shipping pdb does not give any additional convenience to an user. So there are no reasons to ship pdb files with the app. Besides pdb file usually has a large size.

Instead of shipping pdb files you should use a local Microsoft Symbol Server for a fast access to pdb files corresponding to error reports. Here you can find the detailed explanation how to use Symbol Server.

Upvotes: 6

HTTP 410
HTTP 410

Reputation: 17608

Most people want to ship an optimised build. But if you ship a pdb with an optimised build, the source line numbers you get are likely to be off.

Upvotes: 2

Mahmoud Al-Qudsi
Mahmoud Al-Qudsi

Reputation: 29539

Reflectors can get a high-level version of the MSIL code of your .NET application, but that doesn't mean it's necessarily usable/hackable... A lot of the code won't make sense to casual perusal without the names of private variables & functions along with other things that .NET Reflector cannot access without a PDB file.

Obviously if you're using any decent obfuscator (personally I like {smartassembly} but for its lack of cross-obfuscation), then you'll be losing out on all its protections just for the added value of line numbers, which isn't a really fair trade-off.

Anyway, line numbers are overrated!

Upvotes: 1

Vicent Marti
Vicent Marti

Reputation: 7315

Apart from the fact that they are extremely heavy in any serious project? No, there´s no reason if you don't mind people reverse engineering your software.

Upvotes: 0

GEOCHET
GEOCHET

Reputation: 21323

Why would you ship anything more than you need to?

Upvotes: 0

J D OConal
J D OConal

Reputation: 624

Shipping PDBs with your application allows easier reverse engineering as it contains local variable/object names, function prototypes, etc.

Upvotes: 2

Related Questions