Causing a BSOD in C/C++?

I'd like to know, what causes a BSOD? What is the easiet way I can cause a BSOD in C++?

(it's not for anything malicious, don't worry)
brandonhsiao90Asked:
Who is Participating?
 
Infinity08Connect With a Mentor Commented:
lol, looking around, I found this weird "trick" to cause a BSOD :

in the registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters, create a DWORD value called CrashOnCtrlScroll, and set it to 1. Then reboot, and after that, you can cause a crash by holding the right Ctrl key, and pressing the Scroll Lock key twice.
I'm not sure what the use of that is, but it might be what you need :)
0
 
Infinity08Commented:
You could write a driver, and then do something in it that causes a crash (like dereferencing an invalid pointer, NULL eg.).
0
 
evilrixConnect With a Mentor Senior Software Engineer (Avast)Commented:
A BSOD is caused by code running in the kernel (as I8 said, it's normally a driver) that causes an exception that is unhandled. Since the OS has no way to do anything with this unhandled exception the only safe thing it can do is terminate the kernel and display a BSOD.

The following link explains about stop errors includes a detailed explanation of the stop error trick I8 refers to. It is used for testing purposes.
http://www.tomstricks.com/how-to-manually-force-windows-xp-to-generate-a-stop-error/
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
Infinity08Commented:
>> It is used for testing purposes.

Yes, to test a very important feature ! lol ... god forbid the BSOD wouldn't work ;)
0
 
evilrixSenior Software Engineer (Avast)Commented:
>> Yes, to test a very important feature
Ok, for example... you want to test that your uber-important and critical program can survive a BSOD (or a Stop Error to give it the correct name) and recover properly, but how? Answer, generate a BSOD in a controlled way. I suppose you could just pull the plug but I'm not sure that would be the same test, since a stop error has other side effects that just pulling the plug doesn't and vice versa.

Full documentation on the feature can be found here: http://support.microsoft.com/kb/244139

>> god forbid the BSOD wouldn't work ;)
I wonder, is there an equivalent way to make a Linux kernel panic (other than should 'boo' really loudly at it)? I can't say I've ever come across one, I'm sure there must be thought.
0
 
Infinity08Commented:
There's no recovering from a BSOD, is there ? It's basically the OS saying : "I give up - this is too much for me".
0
 
evilrixSenior Software Engineer (Avast)Commented:
>> There's no recovering from a BSOD, is there ? It's basically the OS saying : "I give up - this is too much for me".
The OS is stopped, but as part of that it performs certain things such as perform a memory dump.
0
 
Infinity08Commented:
Right, but what I was getting at is : why would you want to leave it in the finished product ... Why would you give your users the option to trigger a BSOD with a few key presses ?

Which actually makes me curious ... because apparently brandonhsiao90 does want to do it ... Could you satisfy my curiosity, brandonhsiao90 ?
0
 
evilrixSenior Software Engineer (Avast)Commented:
that's not what I meant. I meant you generate the stop error from a different program written are part of your test suite. The ability to generate a stop error is just to facilitate testing. I'm not suggesting this should in into production code. I'm sorry if I gave that impression.
0
 
masheikCommented:
--what causes a BSOD?
i found the wikipedia link helpful,
http://en.wikipedia.org/wiki/Blue_Screen_of_Death
0
 
brandonhsiao90Author Commented:
I wanted to create a BSOD-generator, I thought that some people might actually think it interesting that there's a program whose purpose is to BSOD you.

Problem with the CrashOnCtrlScroll method is that once you do that, obviously your computer shuts down, and you have no way of restoring the old settings. Thanks for all your help!

How can I code a driver?
0
 
Infinity08Commented:
>> Problem with the CrashOnCtrlScroll method is that once you do that, obviously your computer shuts down, and you have no way of restoring the old settings.

Of course you do. Just reboot the PC, and then restore the old settings.


>> How can I code a driver?

"How to write a Windows driver" : http://msdn.microsoft.com/en-us/library/ms809956.aspx
0
 
brandonhsiao90Author Commented:
>> Of course you do. Just reboot the PC, and then restore the old settings.

But I'm distributing my program.

Thanks for the link, helped me lots.
0
 
Infinity08Commented:
Ok ... Well, let us know if there's anything else you need.
0
 
evilrixSenior Software Engineer (Avast)Commented:
The suggested answer doesn't actually answer the original question. The asker wasn't to generate a BSOD and Windows provides a built in diagnostic tool for doing this. This was documented by the following two answers.

{http:#24731548} {http:#24731561}
0
 
Infinity08Commented:
As it turned out in http:#25001032, that approach wouldn't work for the author, since he's looking for a tool to distribute, rather than a set of instructions. I assume that's why TheLearnedOne picked that answer.
0
 
evilrixSenior Software Engineer (Avast)Commented:
Well, he stated "I wanted to create a BSOD-generator" the fact he that says after about distributing it make little sense. Also, if he's looking to create a tool to generate BSOD to test the program he plans to distribute then the answers I suggest will also do that.

Either way those answers provide solutions to the original question asked (which is probably why we both suggested them in the first place). The requirements (if we can call them that) were changed later in the question.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.