© 2006, 2008 Wind River and IBM; made available under the EPL v1.0 | March 10, 2008 | Eclipse Device Debuging: Debugger Services Framework (DSF) Martin.

Презентация:



Advertisements
Похожие презентации
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary © Wind River Systems, released under EPL 1.0. All logos are TM of their respective.
Advertisements

© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2006 Eclipse Foundation, Inc., Made available.
Copyright © 2006 Intel Corporation, released under EPL version /20061 Eclipse DSDP-TM Target Connection Adapters Peter Lachner WW0806 rev 1.0.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2006 Eclipse Foundation, Inc., Made available.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Managing Your Network Environment Managing Cisco Devices.
© 2007, 2008 by Wind River; made available under the EPL v1.0 | 20-Mar-2008 Target Management New and Noteworthy Martin Oberhuber, Wind River
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v Complex MPLS VPNs Introducing Central Services VPNs.
Designing Network Management Services © 2004 Cisco Systems, Inc. All rights reserved. Designing the Network Management Architecture ARCH v
© 2006 Cisco Systems, Inc. All rights reserved. BCMSN v Introducing Campus Networks Network Requirements.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Building a Simple Serial Network Understanding the OSI Model.
© 2009 Avaya Inc. All rights reserved.1 Chapter Two, Voic Pro Components Module Two – Actions, Variables & Conditions.
Introducing Cisco Network Service Architectures © 2004 Cisco Systems, Inc. All rights reserved. Introducing the Cisco AVVID Framework ARCH v
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v MPLS VPN Technology Introducing the MPLS VPN Routing Model.
© 2006 by IBM; made available under the EPL v1.0 | March 20, 2006 | Jeffrey Liu Release Lead IBM Rational Managing APIs with Eclipse API Scanner.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Configuring Groups and Policies Configuring Policies.
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to.
© 2006 IBM Corporation Made available under the EPL v WebSphere Services Technical Conference world class skill building and technical enablement.
Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders.
© 2006 Cisco Systems, Inc. All rights reserved. CVOICE v VoIP Signaling and Call Control Configuring SIP.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2008 Eclipse Foundation, Inc., Made available.
Транксрипт:

© 2006, 2008 Wind River and IBM; made available under the EPL v1.0 | March 10, 2008 | Eclipse Device Debuging: Debugger Services Framework (DSF) Martin Oberhuber and Pawel Piech, Wind River ECSI Workshop on System Debug, 10-Mar-2008

2 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Eclipse Device Debugging Project Mission: Build enhanced debug models, API's, and views that augment the Eclipse Debug Platform in order to address the added complexities of device software debugging. Wind River (lead), Ericsson, IBM, Mentor Graphics, Nokia, PalmSource, Symbian, TI, QNX, Freescale Initiatives Debug Views – Flexible Hierarchy Debugger Services Framework (DSF) Memory View, Multi-Context, Disassembly SPIRIT / IP-XACT Editor Target Communication Framework (TCF) – on TM Project Pawel Piech DD Lead

3 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 System Debug: the Big Picture CPU HW IP Standard Interface DSP 3 rd party SW CPU Debugger 3 rd party SW DSP Debugger SoC (Model) Target Description IP-XACT, XML Target Server(s) This Slide © SPRINT and Infineon 2008; not under EPL

4 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 History: Eclipse Platform/Debug ILaunchConfiguration (static) ILaunchConfigurationTab* ISourceLocator, ISourcePathComputer ILaunch (dynamic) IDebugTarget, IProcess, IThread, IStackFrame IBreakpoint (static+dynamic, editor integration) IVariable, IWatchExpression Synchronous operation Many Known implementations (JDT, CDT, PHPEclipse, PDT, RubyDT, DLTK, IMP, … WR Workbench 2.5 and before)

5 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 History: C Debug Interface (CDI) CDIDebugModel (static) ICDIDebugger2, ICDebugConfiguration ICDISession (dynamic) ICDIEvent*, ICDISignal*, ICDIRegister IAddress (static+dynamic) ICDILocation, ICDIBreakpoint, … Synchronous operation Many Known implementations (CDT and derivatives, e.g. Nokia Carbide, ARM, … but not WR Workbench)

6 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Some Problems of Existing Approaches Fixed Hierarchy ILauch – IDebugTarget – IProcess – IThread – IStackFrame But how to map mulitple Cores on a Debug Target? Problematic Integration of Multiple Debug Engines Monolithic – Hard to do 3 rd party value-add ( TCF!) Mixed stack view e.g. Java – JNI – Native; breakpoints Compare data from 2 debuggers in a variable view Synchronous Operation To evaluate a stack, variable… start a Job (which just wait on the underlying debuggers response most of the time) Scalability, Synchronization problems Jobs – Model – View Fixed Update Policies One Debug Event – All Debug Views updated: dont scale

7 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Wind Rivers History Before Eclipse: Multiple Debug Technologies Tornado/gdb, Look!, SingleStep, VisionClick, Diab RTA Unified Proprietary Technology under Eclipse Back-End: on dfwserver (mostly based on SingleStep) Debug Model: Riverbed (mostly based on Diab RTA) Front end: Eclipse Platform/Debug Started Open Source Initiatives Device Debugging (2005) – Goal: Improve Platform/Debug Strong vendor participation (almost everyone including IBM) First Results: Debug Flexible Hierarchy, Memory Renderings More Initiatives: IP-XACT / SPIRIT, DSF, Disassembly DSF (2006) – Riverbed to Open Source DSF gdb/mi Reference (2007) – Ericsson and WR

8 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Platform Flexible Debug Model (3.2+) First appeared as provisional API in Eclipse 3.2 Main architect Darin Wright (IBM) based on DD discussions Refactored to use JFace Viewer for Eclipse 3.3 Most APIs changed in 3.3 – will still be provisional in 3.4 Reference: EclipseCon presentations Customization of standard debugger views (Debug, Variables, Registers) look and feel API for populating these views with minimal assumptions about structure and format of data Pluggable Update Policies

9 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Debugger Views - Flexible Hierarchy

10 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Debugger Views - Flexible Hierarchy Adapter Types – Each adapter provides a property for elements: IElementContentProvider – children IElementLabelProvider – text, icon, font, color for each column for an element IModelProxy – model event handler, translates events into view update requests IColumnPresentation – list of columns IElementEditor – a modifier and cell editors for each column IElementMementoProvider – seralizable data IViewerInputProvider – proxy input into a viewer Eclipse 3.2+ comes with predefined adapters to mimic the old Platform/Debug behavior, but uses Flexible Hierarchy internally.

11 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Debugger Views - Flexible Hierarchy

12 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 DSF (Debugger Services Framework) A Layer on top of Flexible Hierarchy to simplify its use API to accommodate needs of embedded debuggers: performance, modularity, extendibility. DSF is based on Riverbed concepts but a Community Effort Part of DD project but trying to push into Platform DSF 0.9 with Eclipse 3.3, running for 1.0 this year Current WR Workbench 3.0 switched from Riverbed to DSF Dependencies Java 1.5 (for util.concurrent: Executor) CDT (for IAdress interface: to move into Platform)

13 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 DSF – Concurrency Model All public APIs accessed on a single session thread Managed by a Java 1.5 executor object Thread-safe: session thread as a global lock for state accessible through public APIs of all the services Services are still free to create separate worker threads to execute long-running operations Same model as SWT and most other window toolkits Leads to an asynchronous request – callback model for most of the clients: better scalability and performance if many threads, operations, events

14 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 DSF – Asynchronous Interfaces

15 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 DSF – Data Model Services' data handles implement IDMContext interface Contexts are immutable, light-weight, and must properly implement equals() and hashCode(). A service can build on another service's context object to provide additional data Contexts are equal if all the contexts that they build on are equal Services accept generic contexts as arguments and search the context hierarchy for the relevant handle to act upon

16 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 GDB/MI Reference Implementation Create a GDB-based debugger which implements DSF model APIs (functionally equivalent to the GDB debugger using CDI and standard debug model) Tuned for gdb 6.7; to remain in DSDP-DD for Eclipse 3.4 GDB/MI Reference Implementation (DSDP/DD/GDB) Now CDT to evaluate using DSF-GDB in Ganymede Limited prototype checked into CVS along with DSF Europa 0.9 Ganymede (DD 1.0) Ericsson contributes resources to project

17 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Other DD Initiatives: Memory View Provide memory view support suitable for Embedded development (pluggable Rendering Implementation) Traditional Rendering complete since Eclipse 3.3

18 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Other DD Initiatives: Multi-Context To improve workflows and context switching when debugging multiple threads, processes, targets, etc. Colored Views in WR Workbench Proposed patches to Platform but likely not in Pin & Clone (Eclipse/Platform/Debug) Now Future (Eclipse 4.0) Refined proposal for managing multiple view instances Contribute patches to Platform project. Multi-Context (Eclipse/Platform/Debug) Pin and Clone for debug views workflow proposed Patch contributed to Platform, but not used in 3.3 Original proposal for managing multiple view instances

19 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Other DD Initiatives: Disassembly To provide a disassembly editor and replace existing CDT disassembly view. In Progress at ARM but likely not complete for Now Disassembly Editor (Tools/CDT/Debug) Disassembly requirements gathered Refactoring and adopting to an open API Ganymede (CDT 5.0)

20 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 References Eclipse Platform/Debug Flexible Hierarchy EclipseCon tutuorial presentations 2006, 2007, 2008 DSF Architecture Docs EclipseCon tutorial presentation 2008 Device Debugging Overview

21 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Questions?