290 likes | 439 Vues
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
E N D
TOL-062T Improving code quality with Windows Error Reporting David Edfeldt Sr. Program Manager Microsoft Corporation
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
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
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
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.
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)
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
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
demo Website telemetry reports
demo Download, reprocess, analyze
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
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;
demo Using Visual Studio debugging
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
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
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
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
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
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
Thank You! For questions, please visit me in the Speakers Connection area following this session.
© 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.