Написал программу на C в visual studio. Скомпилировал в режиме Release (/MD). Если открыть получившийся екзешник в HEX-редакторе, можно обнаружить это:
В релизе брейкпоинты никогда не работали. Пробовал в Delphi / C / C++ / C# много раз. Возможно, в консольных дебаггерах и работает (не проверял), но в среде разработки точно нет.
A PDB file is the key to evaluating crash dumps. If your app crashes anywhere, on any persons machine, given that PDB file you can zero in on the offending code easily when using a good debugger.
Я чёт не понял. Разве при краше генерируется PDB-файл? Или его надо отдельно хранить для каждой сборки (который был сгенерирован при сборке)?
А как потом дебажить? Ситуация, при которой релиз упал, скорее всего, будет такая, повторить которую не получится. А простые ошибки и так можно отследить в обычном дебаге.