CDT: Latest & Greatest Tooling for C/C++ Jonah Graham, Kichwa Coders EclipseCon France 2016
CDT: The Open Source IDE for C/C++ • Demo of Features • New & Noteworthy • Future Plans
CDT Indexer: 5 facts 1. CDT index is over 10 years old 2. CDT’s indices hold a complete model of the code. 3. The model is paged in from disk lazily. 4. Most operations are faster in CDT than in JDT. 5. The new faster JDT Index is based on CDT’s index (Reference: https://docs.google.com/document/d/1w3-ufZyISbqH8jxYv689Exjm0haAGufdcSvEAgl2HQ4/edit#)
DEMO
ALSO NEW & NOTEWORTHY
Removal of CDI
If you are still using CDI... 1. Migrate to DSF – More powerful, asynchronous debug framework 2. Consider maintaining your own fork of CDI – It’s all open source! • Reach out to the community for help (cdt-dev forum) • Reach out to Kichwa Coders to discuss migration options
Improved Source Lookup • Now using gdb’s ‘set -substitute- path’ backend to handle source mappings • Avoids this problem:
Improved Source Lookup • Users can now configure a path mapping which means source lookup will always work
Use Cases – Linux Use Case Mars Neon Compilation path is absolute and canonical (no ..) gcc -o elf /path/to/file.c Compilation path is absolute and non-canonical (contains ..) gcc -o elf /path/other/../to/file.c Compilation path is relative and canonical (no ..) gcc -o elf to/file.c Compilation path is relative and non-canonical (contains ..) gcc -o elf ../to/file.c
Use Cases – MingGW Compile and Linux Debug Use Case Mars Neon Compilation path is absolute and canonical (no ..) gcc -o elf /path/to/file.c Compilation path is absolute and non-canonical (contains ..) gcc -o elf /path/other/../to/file.c Compilation path is relative and canonical (no ..) gcc -o elf to/file.c Compilation path is relative and non-canonical (contains ..) gcc -o elf ../to/file.c
Use Cases – MingGW Compile and Linux Debug – UNC Paths Use Case Mars Neon Compilation path is UNC and canonical gcc -o elf \\machine\share\path\to\file.c Compilation path is UNC and non-canonical gcc -o elf \\machine\share\path\other\..\to\ file.c
Use Cases – Cygwin Use Case Mars Neon Compilation path is absolute and canonical (no ..) gcc -o elf /path/to/file.c Compilation path is absolute and non-canonical (contains ..) gcc -o elf /path/other/../to/file.c Compilation path is relative and canonical (no ..) gcc -o elf to/file.c Compilation path is relative and non-canonical (contains ..) gcc -o elf ../to/file.c
Use Cases – Cygwin – UNC Paths Use Case Mars Neon Compilation path is UNC and canonical gcc -o elf \\machine\share\path\to\file.c Compilation path is UNC and non-canonical gcc -o elf \\machine\share\path\other\..\to\ file.c
CDT: ONGOING FEATURES
CDT Docker Support
Full GDB Console Full GDB command line behaviour in Eclipse Based on GDB 7.12 for CDT 9.1
Groups Threads • control groups of elements • Better support for multicore e.g – Step groups of threads or processes – Set breakpoint on a subset of thread – Resume any set of multiple cores
Macro Support • Visual Studio like Macro behaviour • Based on EASE project • Using Python • Allows for future Python GDB Integration • Works with launch to customize multicore debug launches
New Build System • In the works • Improved support for CMake, QT • Ongoing discussions
Improved Multicore Breakpoints • Show where breakpoint actually applies i.e which target, core, thread, etc • Allow users to easily control where breakpoints should apply • Persistence of breakpoints applicability • Support for multiple breakpoints at the same location configured differently • Synchronization with the GDB console should work in all cases • Get Involved: Call on the 14 th June
Conclusions CDT has lots of great features for C/C++ development at scale. More great features coming soon. It’s a good time to get involved with the community!
Recommend
More recommend