debugging windows ® ce applications and systems david streams lead program manager windows ce tools...

30
Debugging Windows Debugging Windows ® ® CE CE Applications And Applications And Systems Systems David Streams David Streams Lead Program Manager Lead Program Manager Windows CE Tools Windows CE Tools Microsoft Corporation Microsoft Corporation 8-303 8-303

Upload: viviana-bovell

Post on 31-Mar-2015

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Debugging WindowsDebugging Windows®® CE CE Applications And SystemsApplications And Systems

David StreamsDavid StreamsLead Program ManagerLead Program ManagerWindows CE ToolsWindows CE ToolsMicrosoft CorporationMicrosoft Corporation

8-3038-303

Page 2: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303
Page 3: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

AgendaAgenda

Introduction to Platform BuilderIntroduction to Platform Builder New Platform Builder 3.0 featuresNew Platform Builder 3.0 features IDE Kernel debuggingIDE Kernel debugging HW assisted debugging HW assisted debugging Data Visualization ModelData Visualization Model Product demosProduct demos Questions and answersQuestions and answers

Page 4: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Platform Builder Integrated Platform Builder Integrated Development EnvironmentDevelopment EnvironmentPlatform Pane (Component Tab)Platform Pane (Component Tab)

Component viewComponent view Used toUsed to

configure your configure your platform componentsplatform components

IDE saves your IDE saves your platform stateplatform state .wce workspace.wce workspace

ComponentsComponents Build rulesBuild rules Platform settingsPlatform settings

Page 5: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Platform Builder CatalogPlatform Builder Catalog

Catalog –Catalog –Contains superset of Contains superset of available componentsavailable components

Logical abstraction –Logical abstraction – Choose logical type Choose logical type groupings and resolvegroupings and resolveto components in to components in Platform PanePlatform Pane

Extensible –Extensible –Add new components to Add new components to catalog via .cec filescatalog via .cec files

Page 6: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

New PB 3.0 Tools FeaturesNew PB 3.0 Tools Features

Usability/ease of useUsability/ease of use Configuration improvementsConfiguration improvements Connectivity/download integrationConnectivity/download integration

IDE manages/communicates state of toolsIDE manages/communicates state of tools

Debugger integrationDebugger integration CPU add-in modelCPU add-in model

Entire product (IDE, Wizards, Debugger, etc) Entire product (IDE, Wizards, Debugger, etc) capable of supporting a new CPU that ships capable of supporting a new CPU that ships after PB releasesafter PB releases

ExtensibilityExtensibility New hardware debug APIsNew hardware debug APIs Tools plug-in modelTools plug-in model

Page 7: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Connectivity IntegrationConnectivity Integration PB 3.0 incorporates connectivity settings into PB 3.0 incorporates connectivity settings into

the integrated development environmentthe integrated development environment Users select and configure transports used by Users select and configure transports used by

embedded toolsembedded tools

Page 8: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Connectivity IntegrationConnectivity Integration

Users can then configure their specific Users can then configure their specific transport settings in the appropriate tabtransport settings in the appropriate tab

Page 9: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Download And Boot Now Download And Boot Now Integrated Into IDEIntegrated Into IDE

Target Menu utilizes settings defined in Target Menu utilizes settings defined in connectivity settings dialogconnectivity settings dialog

Page 10: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

CESH (Target Control)CESH (Target Control)Now IntegratedNow Integrated Process and Thread Windows now serve Process and Thread Windows now serve

dual dual purposes Debugger populates windows during break stateDebugger populates windows during break state Shell.exe (CESH) populates windows duringShell.exe (CESH) populates windows during

run staterun state Ability to refresh views after state changeAbility to refresh views after state change

CESH commands now integrated as features CESH commands now integrated as features in the IDEin the IDE Ability to start and stop processes, view process\Ability to start and stop processes, view process\

thread info, set debug zones, set debug break, thread info, set debug zones, set debug break, etc.etc.

Page 11: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

DebuggingDebuggingPlatform Builder 3.0 Platform Builder 3.0 Device ImagesDevice Images

Page 12: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Platform Builder 2.12 Platform Builder 2.12 Debugger ExperienceDebugger Experience Good newsGood news

Integrated the kernel debugger into the IDEIntegrated the kernel debugger into the IDE Supported many windbg debugger Supported many windbg debugger

commands in the IDEcommands in the IDE !Process!Process !thread stack!thread stack

Brought the benefits ofBrought the benefits ofintegrated application debuggingintegrated application debuggingto embedded developmentto embedded development

Page 13: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

PB 3.0 Debugger PB 3.0 Debugger EnhancementsEnhancements Continuity: Intuitive work flow Continuity: Intuitive work flow

Debugger no longer tied to projectsDebugger no longer tied to projects Build from IDE:Build from IDE:

Debug seamlessly from platform Debug seamlessly from platform Build from Command: Target nk.binBuild from Command: Target nk.bin

Enable kernel debugger with theEnable kernel debugger with theclick of a buttonclick of a button 3.0 gives the developer a checkbox to 3.0 gives the developer a checkbox to

enable debugging + adds debugger stub enable debugging + adds debugger stub by default for debug configurationby default for debug configuration

Page 14: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

(More) Debugger (More) Debugger EnhancementsEnhancements Communication and controlCommunication and control

Status Monitor, Status StringsStatus Monitor, Status Strings IDE is State-AwareIDE is State-Aware New UI: Processes, Threads, Call-stack, New UI: Processes, Threads, Call-stack,

and more…and more… New Manual/Auto Logging functionalityNew Manual/Auto Logging functionality

Page 15: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Demo: Kernel DebuggingDemo: Kernel Debugging

Platform Builder 3.0 Platform Builder 3.0 Integration of Host/Target ConnectivityIntegration of Host/Target Connectivity Integrated Download and BootIntegrated Download and Boot CESH IntegrationCESH Integration Kernel DebuggerKernel Debugger

Page 16: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Hardware Assist: Software Hardware Assist: Software Model (Data Breakpoints)Model (Data Breakpoints) Software Model versus Hardware ModelSoftware Model versus Hardware Model

SW model does not require specialized HWSW model does not require specialized HW OEM can configure run control behavior OEM can configure run control behavior

(step in ROM is possible)(step in ROM is possible) Data breakpointsData breakpoints

Previous model: Software emulationPrevious model: Software emulation Debugger took single steps (by instruction)Debugger took single steps (by instruction) At every single step, evaluate locationAt every single step, evaluate location

3.0 Model: Use HW registers, when available3.0 Model: Use HW registers, when available

Page 17: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Demo: SW Model HW AssistDemo: SW Model HW Assist

Platform Builder 3.0Platform Builder 3.0 ODO Platform with SH3 CPUODO Platform with SH3 CPU OAL modified to utilize debug OAL modified to utilize debug

registers for data breakpointsregisters for data breakpoints Application downloaded to target Application downloaded to target

modifies a given addressmodifies a given address Data breakpoint set on that address Data breakpoint set on that address

hitting a certain valuehitting a certain value Performance of hw usage versus Performance of hw usage versus

software emulationsoftware emulation

Page 18: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

HW-Modeled Hardware HW-Modeled Hardware Assist: MotivationAssist: Motivation OEM Challenge: Building and debugging OEM Challenge: Building and debugging

the OALthe OAL OAL code executed prior to KDInit OAL code executed prior to KDInit

(OEMInit, bootloader, …)(OEMInit, bootloader, …) Kernel Debugging too intrusive in some casesKernel Debugging too intrusive in some cases

Hardware Debugging is an essential part of Hardware Debugging is an essential part of the embedded tool chainthe embedded tool chain

Existing tools (Probes, ICE, associated SW)Existing tools (Probes, ICE, associated SW) Ad Hoc tool chainsAd Hoc tool chains Proprietary interfacesProprietary interfaces Very difficult to useVery difficult to use

Page 19: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Hardware Assist: GoalsHardware Assist: Goals

Bring solution to marketBring solution to market Leverage third-party expertise Leverage third-party expertise

through partneringthrough partnering Focal pointsFocal points

Ease of use Ease of use Integration with PB’s existing tool setIntegration with PB’s existing tool set FlexibilityFlexibility ExtensibilityExtensibility

Page 20: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Hardware Assist: SolutionHardware Assist: Solution

Embedded Extended Debugging Interface Embedded Extended Debugging Interface API sits between our debugger andAPI sits between our debugger and

third party driversthird party drivers Drivers communicate with existing hardware Drivers communicate with existing hardware

tools and proprietary interfacestools and proprietary interfaces IDE does not need to know probe detailsIDE does not need to know probe details

Third-party tools plug-in modelThird-party tools plug-in model Port existing and new probe software Port existing and new probe software

and toolsand tools These tools integrate with PB IDEThese tools integrate with PB IDE Currently: AMC, Microtek Int’l, MacraigorCurrently: AMC, Microtek Int’l, Macraigor

Page 21: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Debugger Debugger (PB)(PB)

Embedded ExtendedEmbedded ExtendedDebug Interface (eXDI)Debug Interface (eXDI)

Probe Probe ((JTAG,BDM…JTAG,BDM…))or Emulatoror Emulator

CPUCPU

eXDI eXDI CallbackCallback

eXDI provides mainly Target Run Control, Mem / IO / Reg. eXDI provides mainly Target Run Control, Mem / IO / Reg. Access and State Change Notification to clientsAccess and State Change Notification to clients

eXDI eXDI ServerServer

Plug-insPlug-insPlug-insPlug-insPlug-insPlug-insPlug-insPlug-inseXDI eXDI CallbackCallback

DriverDriver

Optional 3Optional 3rdrd party int’fparty int’f

Page 22: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Demo: HW Model HW AssistDemo: HW Model HW Assist

Platform Builder 3.0Platform Builder 3.0 AMC Custom Foundation CE Platform with AMC Custom Foundation CE Platform with

PPC 821 CPUPPC 821 CPU eXDI driver written by AMC to eXDI driver written by AMC to

communicate with eXDI Server and PBcommunicate with eXDI Server and PB We will debug prior to Kernel Init (OEMInit)We will debug prior to Kernel Init (OEMInit) Plug-In Demo: Download without Plug-In Demo: Download without

BootloaderBootloader

Page 23: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Hardware Assist: ClosureHardware Assist: Closure Debugging capability is extensibleDebugging capability is extensible

Third parties can write tools to interface with HW Third parties can write tools to interface with HW through eXDI and plug-in model (Real-Time Trace, through eXDI and plug-in model (Real-Time Trace, Flash programming,…)Flash programming,…)

Debugging functionality is expandedDebugging functionality is expanded Debug where we never have before:Debug where we never have before:

from CPU Reset to Kernel Init – code in ROM – OAL from CPU Reset to Kernel Init – code in ROM – OAL critical codecritical code

True HW BPs (code and data), true Target haltTrue HW BPs (code and data), true Target halt Very low intrusivenessVery low intrusiveness

Debugging experience is uniqueDebugging experience is unique In the IDE, HW debugging is transparent to the userIn the IDE, HW debugging is transparent to the user Never before has the power of HW debugging Never before has the power of HW debugging

been combined with the ease of use of our been combined with the ease of use of our desktop experiencedesktop experience

Page 24: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Data Visualization: Data Visualization: OverviewOverview Embedded Development Complexity Embedded Development Complexity

versus Desktop Developmentversus Desktop Development Connectivity across the wireConnectivity across the wire Limited resources on the targetLimited resources on the target Specialized hardware, systemsSpecialized hardware, systems

Graphical display of data to reduce Graphical display of data to reduce complexity and visualize system statecomplexity and visualize system state

Integration with PBIntegration with PB

Page 25: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Data Visualization: Data Visualization: ArchitectureArchitecture Target-side information drives host-UITarget-side information drives host-UI Collector/Viewer ModelCollector/Viewer Model

Target: Collector Manager and CollectorsTarget: Collector Manager and Collectors Host: Viewer Manager and ViewersHost: Viewer Manager and Viewers

Page 26: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Data Visualization Tools: Data Visualization Tools: Flagship ProductFlagship Product Kernel Event Viewer (KEV)Kernel Event Viewer (KEV)

Proof of conceptProof of concept MS expertise in KernelMS expertise in Kernel

KEV featuresKEV features Time-based linear display ofTime-based linear display of

system synchronicity eventssystem synchronicity events Event-sensitive Search capabilitiesEvent-sensitive Search capabilities Support for user-defined eventsSupport for user-defined events

Page 27: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Data Visualization: Data Visualization: PartneringPartnering Collector/Viewer Plug-In Model is Collector/Viewer Plug-In Model is

available now!available now! Partners already implementing solutionsPartners already implementing solutions Contact us today!Contact us today!

Page 28: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

SummarySummary

Platform Builder 3.0 now supports Platform Builder 3.0 now supports hardware assisted Debugginghardware assisted Debugging Software Model and Hardware ModelSoftware Model and Hardware Model Extensibility allows for third-party valueExtensibility allows for third-party value

PB 3.0 now supports extensibility PB 3.0 now supports extensibility through Data Visualization Modelthrough Data Visualization Model

Final PB 3.0 product available soon!Final PB 3.0 product available soon! Product and availability information at Product and availability information at

http://www.microsoft.com/windowsce/http://www.microsoft.com/windowsce/embeddedembedded

Page 29: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303

Questions?Questions?

Page 30: Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation 8-303