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

Slides:



Advertisements
Similar presentations
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Advertisements

© 2006 by Doug Gaff, Wind River Systems | Made available under the EPL v1.0 | 12-October-2006 Device Software Development Platform (DSDP) poster session.
© 2006 by Doug Gaff, Wind River Systems | Made available under the EPL v1.0 | 12-October-2006 Device Software Development Platform (DSDP) Doug Gaff Wind.
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 1 Towards A Flexible Debug Platform (3.2)  State of the World in 3.1 and.
A Flexible Debug Platform | © 2005 by IBM; made available under the EPL v1.0 1 Progress Report - Debug Platform (3.2 M4)  State of 3.2 M4  Some Demos.
DEV-2: Getting Started with OpenEdge® Architect – Part I
Android Platform Overview (1)
Precept 3 COS 461. Concurrency is Useful Multi Processor/Core Multiple Inputs Don’t wait on slow devices.
Turning Eclipse Against Itself: Finding Errors in Eclipse Sources Benjamin Livshits Stanford University.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Copyright (c) 2005 IBM Corporation; made available under the EPL v1.0 Enhancements in Memory View December 21, 2005.
Client/Server Architectures
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 4: Threads.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
CPSC 872 John D. McGregor Session 16 Design operators.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
11 Using SPIRIT for describing systems to debuggers DSDP meeting February 2006 Hobson Bullman – Engineering Manager Anthony Berent – Debugger Architect.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Ex3 Preview, Swing tutorial Ex1 review Amit Shabtay.
@ For more details visit : Opportunities for participation Modular Architecture Trace JIT compiler Interpreter Memory manager.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary © Wind River Systems, released under EPL 1.0. All logos are TM of their respective.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary PTP 2.1 Release Review October 29, 2008.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Eclipse Debug Views Update Policy. 2 Agenda  Background  Requirements  How does it work now?  How to make it more flexible?
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Copyright (c) 2006 IBM Corporation; made available under the EPL v1.0 Update Policy ~ Where we are in 3.2.
ProShell Procedure Framework Status MedAustron Control System Week 2 October 7 th, 2010 Roland Moser PR a-RMO, October 7 th, 2010 Roland Moser 1.
© 2008 by Wind River; made available under the EPL v1.0 | 19-Nov-2008 TCF The Target Communication Framework Michael Scharf, Wind River wiki.eclipse.org/DSDP/TM/TCF_FAQ.
Extending Eclipse General concepts and Project related APIs Yearly project, Winter 05/06 The Technion.
Eclipse Debug Views Update Policy. 2 Copyright (c) 2005 IBM Corporation and others. All rights reserved. This program and the accompanying materials are.
Introduction Ken Ryall – Nokia Warren Paul – Nokia Daymon Rogers – Freescale John Cortell - Freescale.
© 2008 UniTESK Lab, ISP RAS; made available under the EPL v1.0 Towards Common Language Toolkit Institute for System Programming of RAS,
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary © Wind River Systems, released under EPL 1.0. All logos are TM of their respective.
Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June 3, 2009 Copyright © 2006, 2009 Wind River Systems, Inc., Made available.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
© 2007 by IBM; made available under the EPL v1.0 | Jan 9 th, 2007 Darin Wright IBM Rational Software Debug Platform 3.3.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
TCF - Target Communication Framework Update for Helios Martin Oberhuber Pawel Piech Wind River.
Introduction to Operating Systems Concepts
TensorFlow– A system for large-scale machine learning
ATS Application Programming: Java Programming
Chapter 5: Threads Overview Multithreading Models Threading Issues
CMPE419 Mobile Application Development
System Concept Simulation for Concurrent Engineering
Software models - Software Architecture Design Patterns
Device Debugging 0.9 Europa Release Review
DSDP Mobile Tools for Java 1
How to take advantage of the new Eclipse Debug Platform features
An Introduction to Eclipse
Code Composer Essentials 3.0
DSDP - Target Management
Chapter 4: Threads.
CMPE419 Mobile Application Development
Presentation transcript:

© 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 debugger’s response most of the time)  Scalability, Synchronization problems Jobs – Model – View Fixed Update Policies  One Debug Event – All Debug Views updated: don’t scale

7 Device Debugging | Debugger Services Framework (DSF) | © 2006, 2008 Wind River and IBM; made available under the EPL v1.0 Wind River’s 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?