locked
Getting started with WER RRS feed

  • Question

  • I'm investigating the use of WER for my company's desktop application and I have a few questions:

    • Do I have to make code changes to my application?  We do not support any OS prior to XP and Server 2008.  At this point we are only interested in collecting crash data (i.e. not using the newer WER API supported in Vista).  The "Developer's Guide to WER" documentation suggests that a call to ReportFault is required, but I'm getting the same behavior with or without the call.
    • Do my application binaries have to be digitally signed in order to participate in WER?  We have purchased a certificate, and will probably start signing our binaries in our next release, but I'd like to know if we can upload mappings for previously released versions of our product that are not digitally signed.
    • What is the duration between when a crash happens and the data appears on the WinQual site?  I've read postings that suggest this can be up to a week, and that is consistent with my experience crashing my test application.  If this is true, then is it fair to say that WER is NOT a good tool for helping an individual customer troubleshoot a specific problem (I'm not saying WER doesn't provide value, just that we expect to have a meaningful response to customer within 24 hours)?
    • What value does a symbol server add to the WER system?  Does the presence of PDBs on the end user system affect the data that is collected after a crash?

    Thanks!

    • Moved by Max Wang_1983 Tuesday, April 26, 2011 1:27 AM forum consolidation (From:Windows Error Reporting for ISVs)
    Wednesday, August 4, 2010 3:39 PM

Answers

    • It isn't possible to answer the question about code changes without being able to see your code. In general, if you haven't coded any exception handlers in your application, then you should be fine. But let's imagine that years ago you put an exception handler in your code and you implemented something like Matt Pietrek's GenerateExceptionReport method and at the end of your exception filter you return EXCEPTION_CONTINUE_EXECUTION. This is what is meant by 'swallowing' an exception. The system's exception handler will never see your exception, so it can't do error reporting on your behalf. If you want to keep all your old code and still report errors through WER you can add a call to ReportFault to your own handler.
    • No. See this presentation. I'm pretty sure it's explained in there that your binaries do not need to be signed. I've mapped many an unsigned binary.
    • Yeah, about a week. No, it's not fair to say that. What if you have a bunch of customers and some of them get a crash and send in a report, but are otherwise too busy to call your tech support desk. Then a couple of weeks later somebody else gets the crash, and it's critical for them. If they can tell you the crash signature then you can check winqual to see if a dump is already sitting out there for you. That's a lot easier than trying to walk a customer through collecting a dump by other means.
    • None whatsoever. AFAIK the presence of PDB has no effect on the collection of data. I talked to some WER people at a PDC once and they were dreaming about having ISVs possibly submit their PDBs to winqual so that crash locations could be displayed symbolically, but AFAIK nothing has ever come of that. But that is a different matter than distributing PDBs along with your product.
    • Marked as answer by e-roc Wednesday, August 11, 2010 8:15 PM
    Tuesday, August 10, 2010 6:14 PM

All replies

  • 141 views and no reply!  Common folks, lend a helping hand :)
    Monday, August 9, 2010 5:31 PM
    • It isn't possible to answer the question about code changes without being able to see your code. In general, if you haven't coded any exception handlers in your application, then you should be fine. But let's imagine that years ago you put an exception handler in your code and you implemented something like Matt Pietrek's GenerateExceptionReport method and at the end of your exception filter you return EXCEPTION_CONTINUE_EXECUTION. This is what is meant by 'swallowing' an exception. The system's exception handler will never see your exception, so it can't do error reporting on your behalf. If you want to keep all your old code and still report errors through WER you can add a call to ReportFault to your own handler.
    • No. See this presentation. I'm pretty sure it's explained in there that your binaries do not need to be signed. I've mapped many an unsigned binary.
    • Yeah, about a week. No, it's not fair to say that. What if you have a bunch of customers and some of them get a crash and send in a report, but are otherwise too busy to call your tech support desk. Then a couple of weeks later somebody else gets the crash, and it's critical for them. If they can tell you the crash signature then you can check winqual to see if a dump is already sitting out there for you. That's a lot easier than trying to walk a customer through collecting a dump by other means.
    • None whatsoever. AFAIK the presence of PDB has no effect on the collection of data. I talked to some WER people at a PDC once and they were dreaming about having ISVs possibly submit their PDBs to winqual so that crash locations could be displayed symbolically, but AFAIK nothing has ever come of that. But that is a different matter than distributing PDBs along with your product.
    • Marked as answer by e-roc Wednesday, August 11, 2010 8:15 PM
    Tuesday, August 10, 2010 6:14 PM
  • Thank you for the info John.
    Wednesday, August 11, 2010 8:14 PM