共用方式為


Dr. Watson: Please send in your error report

I bet you’ve seen dialogs similar to this:

We at Microsoft refer to this dialog/technology as Dr. Watson (after the famous Sherlock Holmes assistant).

Before Watson, computer users would get the BSOD (The Blue Screen of Death) which would just say that an error occurred and that Windows would have to shut down. Microsoft had no idea how many times these occurred or how to solve them.

When you choose to send Watson errors to Microsoft, a small amount of information is sent, from which we can (hopefully) figure out the cause of the problem and possibly even point the user to a solution. This information includes things like what program was running, what modules (DLLs, or Dynamic Link Libraries) were loaded for that process, and the contents of the CPU registers.

If the error occurs in a third party product, we can forward that information to the third party.

I’ve received several Watson dialogs. After I choose Send, many times I’ve been pointed to a web site with updated device drivers that can cure the problem.

Windows XP, and in fact all versions of Windows since 3.11 run applications in protected address mode. This means that an errant application (or program) cannot disturb the memory of another running application. These applications run in what’s called User Mode. The processor enforces this application protection.

However, certain programs run in a non-protected mode called Kernel Mode, in which that program can do nasty things like corrupt the memory of other running programs. Kernel Mode also allows the program to access hardware directly and do other operations that User mode programs are not allowed to do. (one of my old computers had a HALT instruction… nasty nasty)

This separation between User mode and Kernel mode made operating systems much more resilient from errant applications. However, programs that are Device Drivers run in Kernel Mode, and thus have full power over the memory of the machine. If an error occurs in a Kernel mode application, it’s likely that the machine needs to shut down to prevent any additional damage. If it’s in User Mode, then just closing that process is sufficient to resume.

I attended a talk by BillG a while ago in which he said that something like 80% of all Watson reported errors were due to device driver issues, particular video drivers. This implies that the errors were due to third party device driver authors, but perhaps it also means that it’s not easy to write a device driver that is bug free.

In the old days, a user could run only one single program at a time. I could run a word processor. If I wanted to run another program, I would exit the word processor and start another program. These monolithic programs had full control of the entire computer: any error would be the fault of the program’s author. However, this also meant that the author would have to handle all printers, input devices (like mice), output to the screen, reading and writing files on the disk. Operating Systems were developed to help programs handle much of these tasks. They also helped unify the way things were done on the computer: if all programs wrote to the disk/printer/screen in the same way and handled the keyboard/mouse/pen the same way, then the user would get a consistent user interface.

I wrote a cartoon animation program around 1982 on an original 4.77 MHz IBM PC (it’s reincarnated in Visual FoxPro: start the Task Pane, Solution Sample, Forms, Form Graphics, Line Animation). You could draw a single picture, save it, draw another picture, save it, then choose to animate, which would morph one picture to the other using interpolation.

I wanted to add a mouse interface to the program, so I bought a product called Visi-On from Visicalc, which had a mouse. I had to decode the signals that were sent by the mouse using an oscilloscope to figure out how it communicated to the PC. Then I had to write my own pull-down mouse menus and define the mouse behavior.

Try this: click down, then release on any menu from any application in Windows. Now move the mouse around the screen away the menu. Should the menu disappear when the mouse goes off the menu? Try clicking down on a menu item. Don’t release the mouse. Should the menu item be chosen? What if you then drag the mouse off the item before you release?

Nowadays, running a typical application can have dozens of programs loaded in its process space. For example, I just started Microsoft Word. I have Visual Studio installed, so I can hit bring up Task Manager, right click on the WinWord process, choose Debug. VS starts up and I can choose Debug->Windows->Modules to see that there are over 100 modules loaded!

The interactions, interfaces and assumptions made between these modules are not trivial. With multiple authors and possibly ambiguous specifications, the complexity skyrockets.

Sending in these errors is very beneficial to software users and Microsoft. Given these error reports, we can see actual computer problems experienced by the user and fix real world issues.

Comments

  • Anonymous
    June 28, 2004
    The tone of this is strange:

    Software is easier to write now because one doesn't have to have an oscilliscope to use the mouse, yet software is hard to write because of the number of interactions going on "behind the scenes". So developing software is complicated - so is building a skyscraper, yet they rarely crash (although they are sometimes "buggy").

    It's not all that difficult to write software with very few bugs in it - it's just VERY expensive.

    OK, so it's difficult to write correct device drivers. There are two possible sources of this problem: The framework for writing them is too difficult (i.e. it's MS's fault) or the people writing them are not good at what they do (i.e. it's the author's fault).

    In either case, it's the person who loses their work because their machine mysteriously crashes who pays the price. As a user, I don't see any difference between a crashing process and a crashing machine. I've still lost what I'm doing. The "restart" is slightly faster if it's only a process that goes down but anyone who keeps working after having one process crash has not been using MS products for very long. I don't know what really happens, but one crashing program can indeed corrupt the system. If anything goes down, reboot immediately.

    There is one very simple solution to crashing software, regardless of the cause: Unleash the lawyers. If software authors were held accountable for losses caused by their faulty products, there would be dramatic increase in software quality (cost, too, of course - it's a trade-off). It would also be a good way for MS to battle open source: With open source there's no one to sue if things go badly wrong.

  • Anonymous
    June 28, 2004
    Actually, to be completely accurate that dialog is of "DAD Watson" which replaced Dr. Watson in Windows XP. AFAIK, Dr. Watson was around since the first version of Windows and it definitely could not send crash reports over the internet. Also, the "DAD Watson" name was a play on the old "Dr. Watson" name and the technology was better known by the nickname "DW" (sister to Arthur in some cartoon somewhere). AFAIK, "DAD Watson" has nothing to do with Alexander Graham Bell, but I still kinda' like your story

  • Anonymous
    June 28, 2004
    I thought Dr. Watson came from Sherlock Holmes. Since it helps the investigator.

  • Anonymous
    June 28, 2004
    Yes: I'm wrong: it's Sir Arthur Conan Doyle we have to thank. Too many Watson's!<g>

  • Anonymous
    June 28, 2004
    The comment has been removed

  • Anonymous
    April 27, 2006
    how to stop error reports from coming

  • Anonymous
    May 02, 2006
    where do i send the report? help!

  • Anonymous
    July 20, 2006
    PingBack from http://blogs.msdn.com/calvin_hsia/archive/2006/07/20/672862.aspx

  • Anonymous
    August 25, 2006
    Sometimes something goes wrong with your program and you want to investigate why. You can start Visual...

  • Anonymous
    December 07, 2006
    A customer asks: I read your article "Intentionally crash your program". I have some questions that I

  • Anonymous
    December 11, 2006
    Bob Archer "You take a risk in any thing you do." So with you on this Bob. I'm taking a risk just reading this blog :)

  • Anonymous
    December 15, 2006
    thoughts from a professional developer I do not agree. Go to http://www.bestbbhotel.info/afreet_United%20Kingdom/frangipane_Scotland/unplayable_Glasgow_1.html

  • Anonymous
    February 16, 2007
    mmm.. nice design, I must say..

  • Anonymous
    February 23, 2007
    Lavoro eccellente! ..ringraziamenti per le informazioni..realmente lo apprezzo: D

  • Anonymous
    February 25, 2007
    Dein Aufstellungsort verdient nur gute Woerter. Danke.

  • Anonymous
    March 21, 2007
    thoughts from a professional developer I do not agree. Go to http://www.eastjob.info/vapid_Belgium/any_Flandre/microbic_Bruges_1.html

  • Anonymous
    April 04, 2007
    thoughts from a professional developer I do not agree. Go to http://www.jobznetwork.info/felucca_Belgium/slam_Capital%20Region/broach_Brussels_1.html

  • Anonymous
    April 08, 2007
    ooo! it's one of the best sites ever! :)

  • Anonymous
    April 14, 2007
    Du musst ein Fachmann sein - wirklich guter Aufstellungsort, den du hast!

  • Anonymous
    April 15, 2007
    Stupore! Amo questo luogo!:)))))))

  • Anonymous
    April 16, 2007
    Luogo molto buon:) Buona fortuna!

  • Anonymous
    April 24, 2007
    Trying to open floppy disk file: error report and I get "Document name or path not valid." It will not open the file/folder in MS Word. I suppect the floppy drive is defective. True or other problem?

  • Anonymous
    July 06, 2007
    Dear Sir or Madam, My name is Shawn Michaels and I am from Pakistan, I am a very big fan of yours, please do something about this Window XP I really congratulate you for making this Window XP for us but there maybe two or three errors in our window. Please give me reply as quick as you can, you can contact me on my yahoo id that I’ve given below for you. There we will talk about this problem please we are requesting you for it.

  • Anonymous
    July 06, 2007
    Dear Sir or Madam, My name is Shawn Michaels and I am from Pakistan, I am a very big fan of yours, please do something about this Window XP I really congratulate you for making this Window XP for us but there maybe two or three errors in our window. Please give me reply as quick as you can, you can contact me on my yahoo id that I’ve given below for you. There we will talk about this problem please we are requesting you for it.

  • Anonymous
    May 18, 2008
    PingBack from http://corey.freereportcontent.info/drwatsoncomputer.html

  • Anonymous
    May 29, 2009
    PingBack from http://paidsurveyshub.info/story.php?title=calvin-hsia-s-weblog-dr-watson-please-send-in-your-error-report

  • Anonymous
    June 17, 2009
    PingBack from http://pooltoysite.info/story.php?id=7406