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