CDT: Latest & Greatest Tooling for C/C++ Jonah Graham, Kichwa - - PowerPoint PPT Presentation

cdt latest greatest tooling for c c
SMART_READER_LITE
LIVE PREVIEW

CDT: Latest & Greatest Tooling for C/C++ Jonah Graham, Kichwa - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

CDT: Latest & Greatest Tooling for C/C++

Jonah Graham, Kichwa Coders EclipseCon France 2016

slide-2
SLIDE 2

CDT: The Open Source IDE for C/C++

  • Demo of Features
  • New & Noteworthy
  • Future Plans
slide-3
SLIDE 3

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#)

slide-4
SLIDE 4

DEMO

slide-5
SLIDE 5

ALSO NEW & NOTEWORTHY

slide-6
SLIDE 6

Removal of CDI

slide-7
SLIDE 7

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
  • ptions
slide-8
SLIDE 8

Improved Source Lookup

  • Now using gdb’s ‘set-substitute-path’ backend

to handle source mappings

  • Avoids this problem:
slide-9
SLIDE 9

Improved Source Lookup

  • Users can now configure a path mapping

which means source lookup will always work

slide-10
SLIDE 10

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

 

slide-11
SLIDE 11

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

 

slide-12
SLIDE 12

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

 

slide-13
SLIDE 13

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

 

slide-14
SLIDE 14

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

 

slide-15
SLIDE 15

CDT: ONGOING FEATURES

slide-16
SLIDE 16

CDT Docker Support

slide-17
SLIDE 17

Full GDB Console

Full GDB command line behaviour in Eclipse Based on GDB 7.12 for CDT 9.1

slide-18
SLIDE 18

Groups Threads

  • control groups of

elements

  • Better support for

multicore e.g

– Step groups of threads

  • r processes

– Set breakpoint on a subset of thread – Resume any set of multiple cores

slide-19
SLIDE 19

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

slide-20
SLIDE 20

New Build System

  • In the works
  • Improved support for CMake, QT
  • Ongoing discussions
slide-21
SLIDE 21

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 14th June
slide-22
SLIDE 22

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!