Slide Show Title

Download Report

Transcript Slide Show Title

The True Promise of Eclipse:
Innovation at Your Fingertips
Charles Eagan
Engineering Vice President
Eclipse CDT
30-Nov-05
Agenda
1.
What is Eclipse?
2.
The Eclipse Platform
3.
Eclipse Extensibility
4.
The C/C++ Development Tooling (CDT) Project
5.
Using the CDT on Large “Legacy” Legacy Projects
6.
QNX Momentics Development Suite
7.
Q&A
QNX Confidential. All content copyright QNX Software Systems.
2 out of ##
The True Promise of Eclipse:
Innovation at Your Fingertips
What is Eclipse?
30-Nov-05
What is Eclipse?

Eclipse is - a vast open source community
►
17 Strategic Members, 79 Add-in Provider Members, many
independent contributors
►
Widely adopted
 over one million downloads of Eclipse Platform 3.1

Eclipse is - A collection of open source projects
►

“providing an extensible development platform and application
frameworks for building software” (www.eclipse.org)
Eclipse is – A platform
►
Core Runtime, GUI, and IDE features
►
An SDK for building plug-ins for the Platform
QNX Confidential. All content copyright QNX Software Systems.
4 out of ##
History of Eclipse

Originated at IBM in 2000

Foundation for WebSphere Studio Application Developer®
►

IBM had vision to see the value of open source technologies
►

Good experience with Apache and Linux
Formed Eclipse consortium November 2001
►

Intended to compete with Microsoft® Visual Studio® in enterprise
Involved both partners and competitors
Gave technology and leadership to Eclipse Foundation
►
February 2004
►
Combat the perception that IBM still owned Eclipse
QNX Confidential. All content copyright QNX Software Systems.
5 out of ##
Eclipse Foundation

The Eclipse Foundation is the “keeper” of Eclipse

Small staff to facilitate activity on projects


►
Executive Director, Marketing, Legal, IT, Evangelists/Facilitators
►
No project management or developer staff
Strong focus on IP cleanliness of Eclipse technologies
►
Difficult challenge for open source projects
►
Addressed with strong tracking of all contributions
Project Management Committees manage project lifecycles
►
Run by employees of member companies
►
Manage the creation of projects
QNX Confidential. All content copyright QNX Software Systems.
6 out of ##
Eclipse Projects



Where the work really happens
►
Eclipse Foundation manage infrastructure and marketing
►
Project manage project lifecycles
►
Projects manage technology and development
Committers have write access to CVS repository
►
With that comes responsibility to ensure quality and IP cleanliness
of code
►
Also comes with ultimate power to make program decisions
Anyone can contribute
►
By sending patches that the committers review and apply
 Code, documentation, test artifacts
►
By testing and reporting bugs and enhancement requests
QNX Confidential. All content copyright QNX Software Systems.
7 out of ##
Eclipse Project

The original Eclipse project

Produces a platform for applications and tools

Produces an SDK for developing plug-ins for the platform


►
Java Development Tooling (JDT) for writing Java apps
►
Plug-in Development Environment (PDE) for writing plug-ins
Different packaging of platform for different needs
►
Full Platform for Tools, IDEs
►
Rich Client Platform for General Apps
►
eRCP for embedded Rich Client Applications
IBM still major contributor to this project
QNX Confidential. All content copyright QNX Software Systems.
8 out of ##
Build and Debug

Very generic

Invoke builders incrementally based on resource change
►
Multiple builders to do different operations based
►
Project “natures” define list of builders
 Also used to activate other tooling


Debug platform extendible to different debug paradigms
►
Provides basic views for stack frames, variables
►
Extension points to plug in integrations to native debuggers
Launch framework
►
Pluggable way to launch applications
 E.g. download app to target, invoke remote debugging
QNX Confidential. All content copyright QNX Software Systems.
9 out of ##
Eclipse Extensibility

Everything is a plug-in
►

Plug-ins define extension points
►

Allow functionality to be added in at strategic locations
Plug-ins define extensions to those extension points
►

Written in Java but can contain native code, scripts
To provide customized functionality
Plug-in Development Environment (PDE)
►
Edit of plug-in definitions
►
Build of plug-ins for deployment
►
Debug of plug-ins in a self hosted environment
QNX Confidential. All content copyright QNX Software Systems.
10 out of ##
Plug-ins
QNX Confidential. All content copyright QNX Software Systems.
11 out of ##
Extension Points
QNX Confidential. All content copyright QNX Software Systems.
12 out of ##
Extensions
QNX Confidential. All content copyright QNX Software Systems.
13 out of ##
PDE Build

Generates Deployable plugin distributions

Can be unpacked into any
eclipse install

Includes scripting that can
be used for product builds
using Eclispe
QNX Confidential. All content copyright QNX Software Systems.
14 out of ##
Eclipse Platform Extensibility

User Interface Elements
►
►
►
►
►
►
►
►

Editors
Views
Menu/Toolbar Items
Keyboard Shortcuts
Perspectives
Context Sensitive Help
Property/Preference Pages
New/Import/Export Wizards
Core Elements
►
Content Types
► Startup Behavior

Documented in Platform Plug-in Developer Guide
QNX Confidential. All content copyright QNX Software Systems.
15 out of ##
What is the CDT?

A set of plug-ins that support C and C++ development
►
Extend many of the Eclipse Platform extension points

Support Edit/Build/Debug cycle

Out-of-the-box support for gnu tools for host development
►

Platform for integrating other toolchains
►

gcc, g++, gdb, binutils, etc
Compilers, debuggers, build systems, …
Platform for adding other C/C++ tooling
►
Code analysis, documentation generation, unit testing
QNX Confidential. All content copyright QNX Software Systems.
16 out of ##
History of the CDT

Project launched July 2002
►

At QNX headquarters in Ottawa, Canada
Initially populated with contribution from QNX
►
Additional participation from Rational, MontaVista, and Red Hat
► Again, both partners and competitors

CDT releases regularly with latest being 3.0.1 in Nov 2005

Contributions from
►
►
►
►
►
QNX - initial contribution, core and debug
Rational/IBM - parser technologies
Intel and Texas Instruments - makefile generation
Wind River - refactoring
Others coming…
QNX Confidential. All content copyright QNX Software Systems.
17 out of ##
CDT Contributors Summit 2005

Held at QNX in October 2005

Discussed a number of design issues
►
Debug, Build, Indexing
►
Enhancing extensibility and scalability

Worked through process issues to make it easier for people
to contribute

Participation from 20 different organizations
►
QNX, Intel, Texas Instruments, Wind River, IBM,
►
Nokia, Symbian, Tensilica, Innoopract, ATI/Mentor Graphics,
►
UIUC, Los Alamos NL, Ericsson, Cisco, Etnus, MontaVista
►
Altera, Seimens, Etnus, Eclipse Foundation
QNX Confidential. All content copyright QNX Software Systems.
18 out of ##
C/C++ Perspective
QNX Confidential. All content copyright QNX Software Systems.
19 out of ##
C/C++ Search
QNX Confidential. All content copyright QNX Software Systems.
20 out of ##
Build Systems


Standard Make
►
Invokes existing build systems
►
Error parsing to map errors back to source code in editors
►
Makefile editor for syntax highlighting and code completion
Managed Make
►
Adds makefile generation
►
Extensibility to allow vendors to plug-in their toolchains
►
Automated GUI generation for option settings
►
Out-of-the-box support for gcc/ld on host
QNX Confidential. All content copyright QNX Software Systems.
21 out of ##
Debug

Extends Eclipse Core Debugging

Visual debugging showing
►
Threads
►
Stack Frames
►
Variables
►
Registers
►
Memory

Breakpoints with visual stepping through source code

Out-of-the-box support for gdb

Extensible for integrating other debuggers
QNX Confidential. All content copyright QNX Software Systems.
22 out of ##
CDT Debug Perspective
QNX Confidential. All content copyright QNX Software Systems.
23 out of ##
CDT Extensibility

Plug-in help providers for API documentation
►
At content assist time

Plug-in error parsers for scanning build output to find build
errors

Plug-in tool chain definitions for managed build

Plug-in native debuggers

Plug-in indexers for source navigation features
QNX Confidential. All content copyright QNX Software Systems.
24 out of ##
QNX® Momentics® at a Glance
QNX Confidential. All content copyright QNX Software Systems.
25 out of ##
Target Management
QNX Confidential. All content copyright QNX Software Systems.
26 out of ##
System Profiler
QNX Confidential. All content copyright QNX Software Systems.
27 out of ##
Application Profiling
QNX Confidential. All content copyright QNX Software Systems.
28 out of ##
Thank You!
Questions and Answers
30-Nov-05