What are "Debug/Checked" versions of a Windows OS?

21

While looking for a Windows XP download in the MSDN subscriber portal, I noticed this:

enter image description here

So, what is the Debug/Checked version?

Der Hochstapler

Posted 2012-03-05T13:00:59.843

Reputation: 77 228

Answers

30

The debug/checked version is used for debugging device drivers. It contains run-time checks for error conditions and has run-time optimizations removed.

David Schwartz

Posted 2012-03-05T13:00:59.843

Reputation: 58 310

14Incase it isn't clear enough: This means that the debug/checked versions will run slower than the ones designed for consumer use. – Hengjie – 2012-11-05T02:40:35.657

2

In particular, interpreting the explanations, using a Debug/Checked version is only likely to help you if you are writing kernel-mode components (most likely drivers), or if you are relying on some third-party kernel-mode components that you believe might be buggy under the conditions that you place them in.

That is to say: the vast majority of developers (i.e. those developing application software — software that users interact with, regardless of whether it's "managed" or "unmanaged", command-line or GUI-based; in short, user-space code) don't need this at all, and shouldn't use it, because it is slower than mainstream versions of Windows.

So if you're not sure whether you need it, you almost certainly should avoid it. Conversely, if your work would benefit from it, then you would already be well aware of it (e.g. from wherever it was that you learnt how to go about kernel-mode development).

Evgeni Sergeev

Posted 2012-03-05T13:00:59.843

Reputation: 1 704

Speed is utterly irrelevant during most testing. The reason most application developers don't use checked builds is that none of their code will even launch due to all the asserts. If all developers had to produce working code on checked builds, we'd be much better off. – EKW – 2015-08-28T20:18:21.880

@EKW Speed is utterly irrelevant... Not true. A lot of tricky bugs only come up when things start working fast enough to create the conditions for them. Especially subtle threading errors, async callbacks, etc. Sometimes you can even see it visually when running some ancient 16 bit application, e.g. very annoying flickering repainting. – Evgeni Sergeev – 2015-08-29T07:17:22.580

Hence "most cases." Eventually, you need to verify against a free or retail build of the OS. Applications generally, fail to make correct calls to OS functions or handle exceptions properly more often than they have concurrency issues, however. – EKW – 2015-08-29T19:16:08.523

Yeah, maybe applications on the moon. – Evgeni Sergeev – 2015-08-30T12:11:59.843