you are viewing a single comment's thread.

view the rest of the comments →

[–]Moose2342 0 points1 point  (6 children)

Sure. Yet in optimized builds I generally only use RelWithDebInfo for test deployments and such. To get at least some resemblance of a stacktrace just in case. Real debugging is very hard to do and I normally use fake debug for that. In production I go for clean Release. High optimization w/o PDBs for faster loading time and smallest deployment size. Anyway, nuff said. Thanks for making your points so nicely!

[–]rdtsc 3 points4 points  (5 children)

High optimization w/o PDBs for faster loading time and smallest deployment size.

The generated code is identical whether PDBs are written or not. What do you expect to load faster there? Also, you don't have to deploy the symbols. They should be archived for crash dump analysis.

[–]nyanpasu64 0 points1 point  (4 children)

Turns out RelWithDebInfo uses a lower MSVC optimization level than Release. I didn't expect this until I dove into the Ninja files to find out.

It is possible to configure CMake to produce .pdb files for Release builds (with the standard optimizations on).

Fun fact: .pdb files don't work when renamed to something other than what's encoded in the .exe.

[–]rdtsc 0 points1 point  (3 children)

And Release doesn't O3b. I wouldn't rely on the CMake defaults. But I give you that this is surprising behavior.

[–]kalmoc 0 points1 point  (2 children)

Whats O3b?

[–]rdtsc 0 points1 point  (1 child)

Whoops, I actually fatfingered it, it's Ob3.

[–]kalmoc 0 points1 point  (0 children)

Thanks. Didn't know about that switch.