Presentation is loading. Please wait.

Presentation is loading. Please wait.

EMB318 Improve Product Quality Using Windows CE Error Reporting (Watson) James Stulz Program Manager Windows CE Core Tools Microsoft Corporation.

Similar presentations


Presentation on theme: "EMB318 Improve Product Quality Using Windows CE Error Reporting (Watson) James Stulz Program Manager Windows CE Core Tools Microsoft Corporation."— Presentation transcript:

1 EMB318 Improve Product Quality Using Windows CE Error Reporting (Watson) James Stulz Program Manager Windows CE Core Tools Microsoft Corporation

2

3 Agenda Introduction to Window Error Reporting (WER) WER Infrastructure Enable WER in your platform Looking at WER data on your own How to access WER data from Microsoft Analyze and fix crashing problems

4 Introduction What is it? Windows CE/Mobile Error Reporting a.k.a Watson, Dr. Watson, WER, Error Reporting New for Windows CE/Mobile 5.0 The Error Reporting Client uploads crash data to Microsoft Captures both System and Application level crashes Microsoft actively utilizes Error Reporting data to identify and prioritize crashing problems Share the Error Reports with OEMs and ISVs Fix problems to improve quality

5 Introduction What are the benefits? Provides actionable data for customer reported issues with your product Educates you about the frequency/scale of those issues Provides you with crash data and ability to analyze the problem Bug prioritization based on report volume Customer satisfaction and a successful product

6 Introduction Bug prioritization ‘Scale’ is critical From desktop Windows we learned there is a large number of crashing points of failure Fortunately there are clear trends seen in Windows Error Reporting: Worst 1% of the defects = 50% of the failures! Worst 20% of the defects = 80% of the failures Consistent across almost all applications and components Consistent on a per vendor basis Focus on the peak issues can have a big impact! Unique Problems (Buckets)

7 Introduction Privacy The user gives permission for the upload User can review the contents of the upload All data is saved to a Microsoft- managed and secured database Meets Federal Trade Commission's Safe Harbor Agreement and EU laws Intent is fixing bugs, not to track users

8 Introduction Process overview

9 Infrastructure Design overview

10 Infrastructure Components Kernel components Hd.dllOsaxst0.dll Driver components Dwxfer.dllDwui.dll Client app Dw.exe Approximate size = 110KB (ARM)

11 Infrastructure Captures Unhandled 2 nd chance exceptions 3 types of captures Standard MS minidump format Context (4-64KB) System (64KB-several MB) Complete (all physical mem + 64KB) Best fit approach depending on how much OEM allocates dedicated memory We recommend 300KB RAM

12 Infrastructure Consent UI – e.g. Pocket PC

13 Infrastructure Headless Devices Easy to configure Simply exclude the UI component Set the NoConsentRequired in the registry Headless means no UI for users to opt-in Is privacy an issue? Some devices don’t have privacy issues If so, opt-in is not an issue WER requires users to agree to the Privacy policy Add the privacy policy to the User license EULA Shrink wrap license agreement On host computer configuration

14 Infrastructure Upload to Microsoft Minidumps are compressed Uploads using an HTTPS connection Configurable Directly thru an internet connection Pass thru Active Sync connection If the connection is successful Files are deleted If the connection is unsuccessful Additional attempts will be made on new connection events Asynchronous – as connections happen

15 Infrastructure Bucketing parameters Bucketing parameters are Application name, version, and timestamp Module name, version, and timestamp Offset into the module Owner application name, version, and timestamp Group crash dumps into buckets Similar crashes will result in the same bucket After collecting so many just increment counters

16 Integrate WER Into Apps Programmatically Capture BOOL CaptureDumpFileOnDevice( DWORD dwProcessId, DWORD dwThreadId, LPCWSTR pwzExtraFilesPath ); dwProcessId, dwThreadId 0 = current Otherwise, provide the Id pwzExtraFilesPathOptional Unique folder name (ownership changes) Returns TRUE = successful FALSE = failure, check GetLastError()

17 Integrate WER Into Apps Exception Handling Handled exceptions do not trigger the capture Generate a dump file from within an exception filter EFaultRepRetVal ReportFault( LPEXCEPTION_POINTERS pep, DWORD dwOpt ); pep – Pointer to an EXCEPTION_POINTER structure dwOpt – Reserved and should be zero Returns frrvErrNoDW – on error fvvrOk – successful capture

18 Integrate WER Into Apps Exception Handling Example __try { FunctionThatGeneratesAnException(); FunctionThatGeneratesAnException(); } __except(ReportFault(GetExceptionInformation(),0), EXCEPTION_EXECUTE_HANDLER) { SomeHandlerFunction(); SomeHandlerFunction(); }

19 Add WER To Your Platform Using PB on a new platform Add the features using Platform wizard Using PB on an existing platform Add features from the Catalog Using the command line Define the SYSGENs Allocate dedicated memory the capture

20 Add WER To Your Platform Platform Wizard Windows CE Error Reporting checkbox Selects all of the components Exception Report Generator Error Report Transfer Driver Error Report Control Panel Report Upload Client Default is Client Without User Interface Allocate the dedicated memory Build your platform

21 Add WER To Your Platform Catalog Under CoreOS\Windows CE Devices Add Windows CE Error Reporting components to your platform Exception Report Generator Error Report Transfer Driver Error Report Control Panel Report Upload Client Report Client User Interface Allocate the dedicated memory Build your platform

22 Add WER To Your Platform Command line builds Define the SYSGENs SYSGEN_WATSON_DMPGENSYSGEN_WATSON_XFERSYSGEN_WATSON_CTPNLSYSGEN_WATSON_CLIENTSYSGEN_WATSON_CLIENT_UI Allocate the dedicated memory Build your platform

23 Add WER To Your Platform Dedicated memory Allocate the dedicated memory In RAM (default) Does not persist across cold boots Set dwNKDrWatsonSize variable in OEMInit() e.g. for 300 KB dwNKDrWatsonSize = (300 * 1024); In OEM defined storage Set dwNKDrWatsonSize variable in OEMInit() OEM must provide the following routines RAMDrWatsonFlush(void)RAMDrWatsonClear(void) RAMDrWatsonRead(DWORD dwOffset, LPVOID pData, DWORD cbSize) RAMDrWatsonWrite(DWORD dwOffset, LPVOID pData, DWORD cbSize)

24 Configurability On device thru registry [HKEY_LOCAL_MACHINE\System\ErrorReporting\DumpSettings]"MaxLogFiles"=dword:00000064"MaxDiskUsage"=dword:000e1000"UploadClient"="\\windows\\Dw.exe""ExtraFilesDirectory"="\\windows\\ExtraDumpFiles""CabDirectory"="\\Windows\\System\\DumpFiles\\CabFiles""DumpDirectory"="\\Windows\\System\\DumpFiles""DumpEnabled"=dword:00000001 [HKEY_LOCAL_MACHINE\System\ErrorReporting\UploadSettings]"ManifestConsent"=dword:00000001"UploadFailedDlg"=dword:00000000"UploadSucceededDlg"=dword:00000000"MaxDailyReports"=dword:00000000"MaxWeeklyReports"=dword:00000000"DontUpload"=dword:00000000"NoConsentRequired"=dword:00000000

25 Analyzing The WER Data On the device Lose advantages of bucketing parameters Dumps are stored on the device Configure not to Upload Move the WER data off the device Create your own client app

26 Analyzing The WER Data Thru WinQual WinQual – Windows Quality Online http://winqual.microsoft.com Part of the Windows Logo Program website You do not have to have a logo Requirements Code Signing VerisignID Certificate Sign Term of Use agreement (TOU) File mapping Request Responses Close the loop with customers

27 Analyzing The WER Data Debugging Platform Builder Kernel Debugger Postmortem debugger missed Windows CE 5.0 Power tools UIDumpView.exe http://download.microsoft.com/download/7/8/4/78 4bf4d2-2a21-416f-b495- 1fd0f2340e3b/UIDumpViewer.exe http://download.microsoft.com/download/7/8/4/78 4bf4d2-2a21-416f-b495- 1fd0f2340e3b/UIDumpViewer.exe Matching binaries and sources are required WinQual Microsoft Symbol server

28 Debugging The crash James Stulz Program Manager Windows CE Core Tools

29 Summary WER is easy to add WinQual gives you direct access to your data Fix hard to find crashing problems Create a successful product

30 While at MEDC 2005… Fill out an evaluation for this session Randomly selected instant WIN prizes! Randomly selected instant WIN prizes! Use real technology in a lab Instructor led Reef E/F & Breakers L Self-paced Reef B/C Self-paced Reef B/C Visit the Microsoft Product Pavilion in the Exhibit Hall Shorelines B in the Exhibit Hall Shorelines B

31 After The Conference… Develop Build InstallBuildJoin Install Enter Enter Join Full-featured trial versions of Windows CE and/or Windows XP Embedded Cool stuff & tell us about it: msdn.microsoft.com/embedded/community msdn.microsoft.com/embedded/community Windows Embedded Partner Program: www.mswep.com www.mswep.com Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2 Mobile2Market Contest and win up to $25000: mobile2marketcontest.com mobile2marketcontest.com Microsoft Solutions Partner Program: partner.microsoft.com partner.microsoft.com

32 Tools & Resources msdn.microsoft.com/ embedded microsoft.public. windowsxp.embedded windowsce.platbuilder windowsce.platbuilder windowsce.embedded.vc windowsce.embedded.vc blogs.msdn.com/ mikehall Windows CE 5.0 Eval Kit Windows XP Embedded Eval Kit msdn.microsoft.com/ mobility microsoft.public. pocketpc.developer smartphone.developer dotnet.framework.compactframework blogs.msdn.com/ windowsmobile vsdteam netcfteam Windows Mobile 5.0 Eval Kit Websites Newsgroups Blogs Tools Build Develop

33 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Download ppt "EMB318 Improve Product Quality Using Windows CE Error Reporting (Watson) James Stulz Program Manager Windows CE Core Tools Microsoft Corporation."

Similar presentations


Ads by Google