1 / 29

Improving code q uality with Windows Error Reporting

TOL-062T. Improving code q uality with Windows Error Reporting. David Edfeldt Sr. Program Manager Microsoft Corporation. Agenda. Importance of c ustomer f eedback Tapping into the d ata Drilling f urther with automation Integration with Visual Studio

hansel
Download Presentation

Improving code q uality with Windows Error Reporting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TOL-062T Improving code quality with Windows Error Reporting David Edfeldt Sr. Program Manager Microsoft Corporation

  2. Agenda • Importance of customer feedback • Tapping into the data • Drilling further with automation • Integration with Visual Studio • Closing the customer feedback loop • Recap You’ll leave with examples of how to • Report data collection through Report API • Integrate WER data into your environment in new ways

  3. Importance of customer feedback

  4. Customer feedback • Feedback has been received from millions of users • 10,427,189 aggregate Windows Error Reports on Windows 7 (Beta to GA) • 4,753 code changes driven through change • Windows Error Reporting (WER) has existed since Windows XP • 2,000+ vendors (IHVs, ISVs, and OEMs) participate • We want you to participate in feedback tools to collect data for you and send your information to end users

  5. Types of Feedback

  6. Sku # - best way to get great data • Old SMBIOS field New use in Windows 8 • New certification requirement to fill in • Collected by ALL data collection tools • Will be key to Windows Update targeting REQUIRED REQUIRED REQUIRED REQUIRED Recommended Recommended REQUIRED REQUIRED NEW REQUIRED Recommended

  7. requirement-System.Fundamentals.SMBIOS.SMBIOSSpecification The system firmware must implement support for SMBIOS that complies with System Management BIOS Reference Specification, Version 2.4 or later. The SMBIOS implementation must follow all conventions and include all required structures and fields as indicated in the SMBIOS Specification, Section 3.2, and follow all conformance requirements as indicated in Section 4. Bit 2 in the BIOS Characteristics Extension Byte 2 field must be set (Section 3.3.1.2.2 of the specification). The length of the Type 1 (System Information) table must be at least 1Bh bytes (includes SKU Number and Family fields from Version 2.4 of the specification). Additionally, the following fields must have non-Null values that accurately describe the computer system or computer system component: (Table 0, offset 04h) BIOS Vendor (Table 0, offset 08h) BIOS Release Date (Table 0, offset 14h) BIOS Major Release Version1 (Table 0, offset 15h) BIOS Minor Release Version1 (Table 1, offset 04h) System Manufacturer (Table 1, offset 05h) System Product Name (Table 1, offset 08h) Universal Unique ID number 1These fields must not have values equal to 0FFh. Microsoft recommends that the following fields have non-Null values that accurately describe the computer system or computer system component: (Table 0, offset 05h) BIOS Version (Table 0, offset 16h)Embedded ControllerMajor Release Version2 (Table 0, offset 17h) Embedded Controller Minor Release Version2 (Table 1, offset 06h) System Version (Table 1, offset 19h) System SKU Number (Table 1, offset 1Bh) System Family (Table 2, offset 04h) Base Board Manufacturer (Table 2, offset 05h) Base Board Product (Table 2, offset 06h) Base Board Version 2If the system has a field upgradeable embedded controller firmware; these values should not be equal to 0FFh.

  8. Tapping into the data

  9. Windows Error Reporting definitions • What is a bucket? • Evidence the client gathers at the time of incident • What is a CAB? • Windows cabinet file – a Windows native compressed archive format • Memory dumps (Triage, Mini, Full, Kernel, Heap) • WMI queries (Sysdata.xml, WERinternalMetadata.xml)

  10. Windows Error Reporting definitions • What is a failure? • Result of processing of memory dumps on server to more precisely root cause the faulting module. Symbols provide more actionable data. • What is a response? • Action Center message to end users

  11. MSDN Development Centers MSDN Winqual will be integrated into Hardware/Desktop Dev Centers Hardware and desktop apps will get error reporting from Hardware/Desktop Dev Centers Windows Metro style apps will get reliability metrics from Windows Store Desktop Development Center Hardware Development Center Windows Store Device metadata Reports Driver Distribution Center Certification

  12. demo Website telemetry reports

  13. Drilling further with automation

  14. demo Download, reprocess, analyze

  15. Programmatic flow of report API • Report list URL – gives you list of reports • /ReportingService/ReportingService.svc/Reports • Feed list URL – gives you list of feeds for a report • /ReportingService/ReportingService.svc/Reports/ReportName • Feed URL – gives you content of the feed • /ReportingService/ReportingService.svc/Reports/ReportName/FeedName

  16. Get report list code sample   System.Collections.ArrayList reportNameArray = new System.Collections.ArrayList();     System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(REPORT_LIST_URL);   request = GetAuthenticatedRequest(request, username, password);     System.IO.Stream response = request.GetResponse().GetResponseStream();     System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();     xDoc.Load(response);     System.Xml.XmlNodeList nodes = xDoc.SelectNodes(REPORT_XPATH);     foreach (System.Xml.XmlNode node in nodes)     {         reportNameArray.Add(node.InnerText);     } return reportNameArray;

  17. Integration with Visual Studio

  18. demo Using Visual Studio debugging

  19. Closing the customer feedback loop

  20. What’s needed to get involved? • Windows Error Reporting Terms of Use V1.3 • Provides details on acceptable use of the collected data • How long data sets can be retained • Cautions around privacy and appropriate use • Limits sharing data with others

  21. Closing the loop - responses • Workflow • Responses requested through telemetry reports • Responses provided to customers through Action Center • Scenarios • An update is available that fixes the problem • An update or steps are available that might fix the problem • Customer feedback is needed to help solve the problem • The product is no longer supported

  22. Closing the loop – Driver Distribution Center • Workflow • Certify driver update through MSDN Hardware Development Center • Distribute driver update through Driver Distribution Center • Customers receive updates through Windows Update • Scenarios • A specific fix exists • There is a product update

  23. Recap

  24. Review • Use the new MSDN Dev Centers to access your data • Use automation to provide customization • Use Visual Studio 11 with symbols to root cause problems • Close the loop with customers through responses or driver updates

  25. Related sessions from //build conference Go to - www.buildwindows.com/sessions and search for these numbered sessions. • [HW-118T] Advanced app and driver debugging • [HW-903T] Best practices for packaging and distributing device drivers • [HW-665C] Windows Certification Program, process and tools • [APP-121T] Introducing the Windows Store

  26. Further reading and documentation Event Site: • http://channel9.msdn.com/Events Resources: • WER Service Blog • How WER Collects and Classifies Error Reports • Windows Hardware Dev Center Dashboard • Windows Hardware Dev Center • Windows Dev Center

  27. Thank You! For questions, please visit me in the Speakers Connection area following this session.

  28. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related