22
Eclipse for remote development Presented by Taye Su

Eclipse for remote development Presented by Taye Su

Embed Size (px)

Citation preview

Eclipse for remote developmentPresented by

Taye Su

Agenda

• Theory of Operation

• Workflows• Install & Configure• New Project• Build• Edit• SCM• Debug

• Q&A

2

overview

• Global development (US, India, Singapore, China)

• Large C++ codebase

• Linux OS specific

3

Theory of operation• Classical Development

4

Pain points

• Inconsistence dev environment

• SlickEdit Dev has own hooks and hard to share

• X-Client doesn’t work well for remote users

• Error prone - typing errors to code

• Difficult to trace compiling error

• Manual debugging

• difficult to setup

• difficult to step through code with gdb commands

• gdb is too expensive to run on staging machine

5

Solutions for remote development

6

Introduction

• PC, Linux and Macintosh versions

• Eclipse enhanced for PayPal developers• Ability to edit/build remotely

• Ability to debug remotely

7

Theory of operation

• Rsync Project

8

Theory of operation

Rsync Variants for local editing & indexing• Basic Rsync

• Manual Rsync

• Offline Rsync

9

Benefits

• Inherited all Eclipse plugin features.

• Graphical remote debugging

• Speediness / responsiveness for remote users

• Consistent development environment

10

Workflows

11

Workflows – Remote Debugging

• Remote Debug Wizard makes debugging easy

• Debug Steps:• Build Application With Symbols

• Deploy to playground or stage

• Set Breakpoints

• Run the Debug Wizard

• Types of Applications

• Standalone – launched by gdb

• WAC App – launched by Apache, connects via gdbserver

• Service – attach to running process

12

Standalone Application Debugging

13

executable

IDE gdblaunches

launches

dev staging

WEB Application

14

apache

IDE debug.cdbplaces

dev staging

WEB Application

15

apache

IDE debug.cdbhttp request

webapp

launches

gdbserver

launches

dev staging

WEB Application

16

apache

webapp

gdbserver

IDE

attaches

dev staging

WEB Application

17

apache

webapp

gdbserver

gdbIDElaunches

connects

controls

dev staging

Service/Daemon Debugging

18

asfhelloserv

gdbIDElaunches

attaches

dev staging

Service/Daemon Debugging

19

asfhelloclient

asfhelloserv

gdbcoronacontrols

controls

messages

dev staging

Future works

• Open Source

• RSYNC project creation

• Remote debugging

• Import project base on makefile (hello.exe_def)

• Deploy app

Evaluate This Session

Sign-in: www.eclipsecon.org

Select session from schedule

Evaluate:

1

2

3