SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
1




Reverse, Multi-Process and
Non-Stop Debugging come to the CDT

       Or:           How I Learned to Stop Worrying and
                     Love GDB (and DSF)

                     Marc Khouzam, François Chouinard

       Confidential | Date | Other available under the Eclipse Public License v 1.0
       Copyright © 2009 Ericsson, Made Information, if necessary
                                                                                      © 2002 IBM Corporation
Agenda

             Ericsson: What are we doing here?
             DSF Overview
                     Demo 1
                             What’s New
                             Multi-threading
                             Multi-process
             Upcoming Debugging Features
                     Demo 2
                             Reverse Debugging
             Questions




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   2
Ericsson Context

             Not a tool vendor!
             5 main proprietary platforms (sort of… ☺)
                     Some with proprietary OSes
             Each PF requires its own development environment
                     Heavy use of tools in all phases of SW development
                     Standard, everyday tools (e.g. editors, compilers, CM, …)
                     Custom tools for “advanced” needs


             Eclipse: our tool integration platform of choice
             Push for an Eclipse-based IDE for each platform
                     Open source solutions when available
                     Vendor or in-house solutions for the rest

             Everything was cool…


Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   3
Then the sh*t hit the fan…

             ‘Difficulties’ at integrating a debugger for one of our proprietary platforms
             In-house CDI-GDB based solution (incomplete)
                     Worked for the emulator, not the real target
                     Support for freeze-mode only (a.k.a. all-stop)
                     Lacking support for:
                         Multiple targets
                         Multiple processes
                         Non-stop multi-threading
                     Awkward support for:
                         Execution model
                         Data model

             Internal study concluded that:
                     GDB could be enhanced to bridge the gap
                     CDI-based solution would eventually be problematic
                     DD/DSF offered a better alternative


Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0             4
GDB Improvements

             Support for non-stop multi-threading
                     Run mode selection (all- or non-stop)
                     Run control - select/suspend/resume/… individual threads or
                     groups of threads


             Support for multi-process
                     Direct support for multiple processes
                     Handling of execution contexts and aggregation in GDB
                     Global breakpoints
                     Auto-attach


             Some proprietary extensions for our specific needs
             (not contributed back)

Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   5
CDI-GDB Challenges

             No direct support for proprietary platform features
                     Non-standard execution and data models
                     Multiple targets
                     Multiple processes
                     Non-stop multi-threading


             Overall performance issue
                     Synchronous debugger communication
                     Slow data retrieval (for large data structures)
                     Stepping-in for large projects
                     Scalability ~


             CDI could have been extended, but:
                     Difficult to integrate our changes in the code base without breaking compatibility
                     Would likely have had to maintain our patches outside of CDI



Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                          6
DSF Features

             Aimed at embedded systems ☺
                     Support for non-standard execution/data models
                     Asynchronous everything
                     Command caching and coalescing (in theory…)
                     Fetch only what is required by the UI
                     Scalability !


             Built-in support for concurrency ☺
                     Asynchronous interfaces
                     Threading model
                             Thread pool of size 1 (de facto global semaphore)
                             Low overhead

Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   7
DSF Features

             Service oriented architecture ☺
                     OSGi-based
                     Can easily add/extend/substitute services
                             Run Control
                             Breakpoints
                             Variables, Registers, …
                             MyExcellentService
                             …

             Other nice UI features:
                     Update policies
                     Fast stepping
                     New memory rendering (ironically called “Traditional” ☺)
                     New disassembly view
                     Stack Frame partial display


Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   8
Demo 1

             What’s New
                     Launch
                     Views
                     GDB traces
                     As-needed back-end requests
                     Caching (memory)
                     Breadcrumb


             Non-stop multi-threading
                     Thread selection/control


             Multi-process
                     Connecting to running processes

Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   9
Debug Perspective




                                                                               Breadcrumb activated when
                                                                               you reduce Debug view to 1
                                                                                          line


                                                                             Worker thread creation loop for
                                                                               the multi-thread example


                                                                        Timer thread creation




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                               10
Non-Stop Multi-Threading




               Multi-thread apps can be
              debugged in either all-stop
              (freeze) or non-stop mode




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   11
Non-Stop Multi-Threading




                                                                                   Worker threads 3 and 4 are stopped
                                                                                       on the breakpoint (line 64)


                                                                                    Threads 1 and 2 (main and timer
                                                                                        thread) are still running




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                                        12
Non-Stop Multi-Threading




                                                                                    Breakpoint is filtered out for
                                                                                   thread 3 i.e. only thread 4 will
                                                                                    stop on the breakpoint now




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                                      13
Non-Stop Multi-Threading

                                                                            You have full control over individual or
                                                                            all threads (suspend, resume, stop, …)




                                                                                            And voila! Thread 4 is stopped
                                                                                           while thread 3 happily does its job




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                                                 14
Multi-Process
                                                                                     Dynamically connect to and
                                                                                     disconnect from processes




                                                                                     Multiple processes running in the
                                                                                         same launch. They can be
                                                                                   individually controlled and inspected.




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                                            15
Multi-Process




                                                                                   Connect: you can attach to
                                                                                     any running process




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                                16
Multi-Process




                                                                                   And voila! The selected is added.




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                                       17
Upcoming Debugging Features

             Reverse Debugging
             Tracepoints
             Multi-exec
             True GDB Server




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   18
Reverse Debugging

             Allows to step program backwards and forwards
                     Avoids repeating test over and over to gradually hone in on bug
                     Allows to replay a bug
                     Allows to go back and change program execution without having to
                     recompile and repeat the test (some targets)


             Often available in simulators/emulators
                     VMWare
                     Simics




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0        19
Reverse Debugging

             IDE front-end support now part of the CDT
                     Buttons, menus and key bindings for
                             Reverse Resume
                             Reverse StepIn
                             Reverse StepOver
                             Uncall
                     Perspective customization to show/hide these new UI features


             Availability for extension
                     Currently in DSF-GDB
                     Will eventually migrate to DSF
                     May even go to Debug Platform


Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0    20
GDB and Reverse Debugging

             Reverse Debugging infrastructure in GDB HEAD
                     Allows to hook to target that support reverse


             Linux PRecord (Process Record and Replay) in GDB HEAD
                     By Hui Zhu (Teawater)
                     For Linux target
                     Records memory and register changes
                     3 minor fixes are still awaiting approval




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   21
Demo 2

             Reverse Debugging
                     New reverse debugging action set
                     Reverse step-in, reverse step-over, resume, uncall
                     Buttons, key bindings and menus
                     Launch option
                     Views in reverse
                     Change execution path




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   22
Reverse Debugging




                                                                           Action set needs to be
                                                                         selected for the perspective




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                        23
Reverse Debugging




                                                New buttons to
                                                control reverse
                                                  execution                         To toggle reverse
                                                                                     debugging and
                                                                                   display new control
                                                                                         buttons




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0                         24
Tracepoints

             Dynamic tracepoints
                     Add instrumentation to running code
                     Low-overhead
                     Enable/Disable dynamically
                     Trigger on user-defined condition
                     Off-line tracing
                     Trace collection from target




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   25
Multi-Exec

             In CDT 6.0
                     Multi-process support in DSF
                     Attaching to multiple processes in DSF-GDB


             Next steps:
                     DSF-GDB support for launching multiple processes in the same
                     debug session
                     GDB support for Multi-process on Linux (should be part of the next
                     release of GDB)




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0          26
True GDB Server

             GDB provides gdbserver
                     Allows to debug remote program on Linux
                     Can be used as a basis to write a new debug server for your own
                     OS
                     Accepts a single GDB connection
                     Usually started manually before beginning debugging session


             True gdbserver
                     Daemon
                     Accepts multiple GDB connections
                     Ready for debugging at any time



Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0       27
Additional Information

             Contacts
                     Marc Khouzam, marc.khouzam@ericsson.com
                     François Chouinard, francois.chouinard@ericsson.com




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   28
Questions?




Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0   29

Más contenido relacionado

La actualidad más candente

Multipoint Video Conferencing
Multipoint Video ConferencingMultipoint Video Conferencing
Multipoint Video ConferencingVideoguy
 
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualizationz/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of VirtualizationIBM India Smarter Computing
 
Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2mikhail.mikheev
 
Virtualization on IBM Blade Center
Virtualization on IBM Blade CenterVirtualization on IBM Blade Center
Virtualization on IBM Blade CenterErik Bussink
 
NUMA Performance Considerations in VMware vSphere
NUMA Performance Considerations in VMware vSphereNUMA Performance Considerations in VMware vSphere
NUMA Performance Considerations in VMware vSphereAMD
 
IP Expo 2012 Storage Lab Presentation - Nimble Storage
IP Expo 2012 Storage Lab Presentation - Nimble StorageIP Expo 2012 Storage Lab Presentation - Nimble Storage
IP Expo 2012 Storage Lab Presentation - Nimble Storageresponsedatacomms
 
Supercharge Your Savings and Mainframe Performance
Supercharge Your Savings and Mainframe PerformanceSupercharge Your Savings and Mainframe Performance
Supercharge Your Savings and Mainframe Performancexmeteorite
 
9sept2009 concept electronics
9sept2009 concept electronics9sept2009 concept electronics
9sept2009 concept electronicsAgora Group
 
PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices VMwarePR
 
The Clear Path to a Cloudy Enterprise
The Clear Path to a Cloudy EnterpriseThe Clear Path to a Cloudy Enterprise
The Clear Path to a Cloudy Enterprisezoopster
 
Track A-Shmuel Panijel, Windriver
Track A-Shmuel Panijel, WindriverTrack A-Shmuel Panijel, Windriver
Track A-Shmuel Panijel, Windriverchiportal
 
Embedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small bedsEmbedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small bedsOpenFest team
 
TSM 6.4 Technical updates
TSM 6.4 Technical updates TSM 6.4 Technical updates
TSM 6.4 Technical updates Solv AS
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Stefan Marr
 

La actualidad más candente (18)

Multipoint Video Conferencing
Multipoint Video ConferencingMultipoint Video Conferencing
Multipoint Video Conferencing
 
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualizationz/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
 
Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2
 
Virtualization on IBM Blade Center
Virtualization on IBM Blade CenterVirtualization on IBM Blade Center
Virtualization on IBM Blade Center
 
NUMA Performance Considerations in VMware vSphere
NUMA Performance Considerations in VMware vSphereNUMA Performance Considerations in VMware vSphere
NUMA Performance Considerations in VMware vSphere
 
IP Expo 2012 Storage Lab Presentation - Nimble Storage
IP Expo 2012 Storage Lab Presentation - Nimble StorageIP Expo 2012 Storage Lab Presentation - Nimble Storage
IP Expo 2012 Storage Lab Presentation - Nimble Storage
 
ARM and SoC Traning Part I -- Overview
ARM and SoC Traning Part I -- OverviewARM and SoC Traning Part I -- Overview
ARM and SoC Traning Part I -- Overview
 
Supercharge Your Savings and Mainframe Performance
Supercharge Your Savings and Mainframe PerformanceSupercharge Your Savings and Mainframe Performance
Supercharge Your Savings and Mainframe Performance
 
9sept2009 concept electronics
9sept2009 concept electronics9sept2009 concept electronics
9sept2009 concept electronics
 
The xsp starter kit
The xsp starter kitThe xsp starter kit
The xsp starter kit
 
PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices
 
The Clear Path to a Cloudy Enterprise
The Clear Path to a Cloudy EnterpriseThe Clear Path to a Cloudy Enterprise
The Clear Path to a Cloudy Enterprise
 
XS Boston 2008 Fault Tolerance
XS Boston 2008 Fault ToleranceXS Boston 2008 Fault Tolerance
XS Boston 2008 Fault Tolerance
 
Track A-Shmuel Panijel, Windriver
Track A-Shmuel Panijel, WindriverTrack A-Shmuel Panijel, Windriver
Track A-Shmuel Panijel, Windriver
 
Embedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small bedsEmbedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small beds
 
Video Meets Documentation
Video Meets DocumentationVideo Meets Documentation
Video Meets Documentation
 
TSM 6.4 Technical updates
TSM 6.4 Technical updates TSM 6.4 Technical updates
TSM 6.4 Technical updates
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
 

Destacado

EclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupEclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupBruce Griffith
 
Real time debugging: using non-intrusive tracepoints to debug live systems
Real time debugging: using non-intrusive tracepoints to debug live systemsReal time debugging: using non-intrusive tracepoints to debug live systems
Real time debugging: using non-intrusive tracepoints to debug live systemsmarckhouzam
 
Working Remotely (via SSH) Rocks!
Working Remotely (via SSH) Rocks!Working Remotely (via SSH) Rocks!
Working Remotely (via SSH) Rocks!Kent Chen
 
Advanced Debugging with GDB
Advanced Debugging with GDBAdvanced Debugging with GDB
Advanced Debugging with GDBDavid Khosid
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDBLinaro
 
Linux booting process!!
Linux booting process!!Linux booting process!!
Linux booting process!!sourav verma
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting ProcessGaurav Sharma
 
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...Jim St. Leger
 
Linux installation and booting process
Linux installation and booting processLinux installation and booting process
Linux installation and booting processSiddharth Jain
 
Simple Belief - Mosky @ TEDxNTUST 2015
Simple Belief - Mosky @ TEDxNTUST 2015Simple Belief - Mosky @ TEDxNTUST 2015
Simple Belief - Mosky @ TEDxNTUST 2015Mosky Liu
 
introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack monad bobo
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Novell
 
BGP Advance Technique by Steven & James
BGP Advance Technique by Steven & JamesBGP Advance Technique by Steven & James
BGP Advance Technique by Steven & JamesFebrian ‎
 
BGP Traffic Engineering / Routing Optimisation
BGP Traffic Engineering / Routing OptimisationBGP Traffic Engineering / Routing Optimisation
BGP Traffic Engineering / Routing OptimisationAndy Davidson
 

Destacado (20)

EclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupEclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
 
Aag c45 697761
Aag c45 697761Aag c45 697761
Aag c45 697761
 
Real time debugging: using non-intrusive tracepoints to debug live systems
Real time debugging: using non-intrusive tracepoints to debug live systemsReal time debugging: using non-intrusive tracepoints to debug live systems
Real time debugging: using non-intrusive tracepoints to debug live systems
 
Working Remotely (via SSH) Rocks!
Working Remotely (via SSH) Rocks!Working Remotely (via SSH) Rocks!
Working Remotely (via SSH) Rocks!
 
Advanced Debugging with GDB
Advanced Debugging with GDBAdvanced Debugging with GDB
Advanced Debugging with GDB
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDB
 
Udev
UdevUdev
Udev
 
Linux booting process!!
Linux booting process!!Linux booting process!!
Linux booting process!!
 
GDB Rocks!
GDB Rocks!GDB Rocks!
GDB Rocks!
 
Vim Rocks!
Vim Rocks!Vim Rocks!
Vim Rocks!
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting Process
 
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
 
Linux installation and booting process
Linux installation and booting processLinux installation and booting process
Linux installation and booting process
 
Simple Belief - Mosky @ TEDxNTUST 2015
Simple Belief - Mosky @ TEDxNTUST 2015Simple Belief - Mosky @ TEDxNTUST 2015
Simple Belief - Mosky @ TEDxNTUST 2015
 
introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
 
BGP Advance Technique by Steven & James
BGP Advance Technique by Steven & JamesBGP Advance Technique by Steven & James
BGP Advance Technique by Steven & James
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
BGP Traffic Engineering / Routing Optimisation
BGP Traffic Engineering / Routing OptimisationBGP Traffic Engineering / Routing Optimisation
BGP Traffic Engineering / Routing Optimisation
 
Linux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platformLinux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platform
 

Similar a Reverse, Multi-Process and Non-Stop Debugging come to the CDT

Staying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugStaying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugmarckhouzam
 
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...Emulex Corporation
 
X plat dev - part ii publish
X plat dev - part ii publishX plat dev - part ii publish
X plat dev - part ii publishTekObserver
 
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...Paris Open Source Summit
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideEberhard Wolff
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds Collideadesso AG
 
Informix Update New Features 11.70.xC1+
Informix Update New Features 11.70.xC1+Informix Update New Features 11.70.xC1+
Informix Update New Features 11.70.xC1+IBM Sverige
 
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with UnikraftNETWAYS
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsFilip Krikava
 
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...The Linux Foundation
 
Choosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your EnterpriseChoosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your EnterpriseRogue Wave Software
 
Virgo Project Creation Review
Virgo Project Creation ReviewVirgo Project Creation Review
Virgo Project Creation Reviewglynnormington
 
X Server Multi-rendering for OpenGL and PEX
X Server Multi-rendering for OpenGL and PEXX Server Multi-rendering for OpenGL and PEX
X Server Multi-rendering for OpenGL and PEXMark Kilgard
 
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBMUsing OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBMmfrancis
 
Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...
Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...
Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...Stephan Eberle
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
 

Similar a Reverse, Multi-Process and Non-Stop Debugging come to the CDT (20)

Staying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugStaying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debug
 
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
Using the NDK and Renderscript
Using the NDK and RenderscriptUsing the NDK and Renderscript
Using the NDK and Renderscript
 
X plat dev - part ii publish
X plat dev - part ii publishX plat dev - part ii publish
X plat dev - part ii publish
 
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
 
Informix Update New Features 11.70.xC1+
Informix Update New Features 11.70.xC1+Informix Update New Features 11.70.xC1+
Informix Update New Features 11.70.xC1+
 
What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?
 
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF Models
 
TrendMicro
TrendMicroTrendMicro
TrendMicro
 
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
 
Choosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your EnterpriseChoosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your Enterprise
 
Virgo Project Creation Review
Virgo Project Creation ReviewVirgo Project Creation Review
Virgo Project Creation Review
 
X Server Multi-rendering for OpenGL and PEX
X Server Multi-rendering for OpenGL and PEXX Server Multi-rendering for OpenGL and PEX
X Server Multi-rendering for OpenGL and PEX
 
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBMUsing OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
 
Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...
Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...
Sphinx: An Industrial Strength Tool Platform Fostering Model-driven Developme...
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Reverse, Multi-Process and Non-Stop Debugging come to the CDT

  • 1. 1 Reverse, Multi-Process and Non-Stop Debugging come to the CDT Or: How I Learned to Stop Worrying and Love GDB (and DSF) Marc Khouzam, François Chouinard Confidential | Date | Other available under the Eclipse Public License v 1.0 Copyright © 2009 Ericsson, Made Information, if necessary © 2002 IBM Corporation
  • 2. Agenda Ericsson: What are we doing here? DSF Overview Demo 1 What’s New Multi-threading Multi-process Upcoming Debugging Features Demo 2 Reverse Debugging Questions Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 2
  • 3. Ericsson Context Not a tool vendor! 5 main proprietary platforms (sort of… ☺) Some with proprietary OSes Each PF requires its own development environment Heavy use of tools in all phases of SW development Standard, everyday tools (e.g. editors, compilers, CM, …) Custom tools for “advanced” needs Eclipse: our tool integration platform of choice Push for an Eclipse-based IDE for each platform Open source solutions when available Vendor or in-house solutions for the rest Everything was cool… Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 3
  • 4. Then the sh*t hit the fan… ‘Difficulties’ at integrating a debugger for one of our proprietary platforms In-house CDI-GDB based solution (incomplete) Worked for the emulator, not the real target Support for freeze-mode only (a.k.a. all-stop) Lacking support for: Multiple targets Multiple processes Non-stop multi-threading Awkward support for: Execution model Data model Internal study concluded that: GDB could be enhanced to bridge the gap CDI-based solution would eventually be problematic DD/DSF offered a better alternative Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 4
  • 5. GDB Improvements Support for non-stop multi-threading Run mode selection (all- or non-stop) Run control - select/suspend/resume/… individual threads or groups of threads Support for multi-process Direct support for multiple processes Handling of execution contexts and aggregation in GDB Global breakpoints Auto-attach Some proprietary extensions for our specific needs (not contributed back) Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 5
  • 6. CDI-GDB Challenges No direct support for proprietary platform features Non-standard execution and data models Multiple targets Multiple processes Non-stop multi-threading Overall performance issue Synchronous debugger communication Slow data retrieval (for large data structures) Stepping-in for large projects Scalability ~ CDI could have been extended, but: Difficult to integrate our changes in the code base without breaking compatibility Would likely have had to maintain our patches outside of CDI Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 6
  • 7. DSF Features Aimed at embedded systems ☺ Support for non-standard execution/data models Asynchronous everything Command caching and coalescing (in theory…) Fetch only what is required by the UI Scalability ! Built-in support for concurrency ☺ Asynchronous interfaces Threading model Thread pool of size 1 (de facto global semaphore) Low overhead Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 7
  • 8. DSF Features Service oriented architecture ☺ OSGi-based Can easily add/extend/substitute services Run Control Breakpoints Variables, Registers, … MyExcellentService … Other nice UI features: Update policies Fast stepping New memory rendering (ironically called “Traditional” ☺) New disassembly view Stack Frame partial display Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 8
  • 9. Demo 1 What’s New Launch Views GDB traces As-needed back-end requests Caching (memory) Breadcrumb Non-stop multi-threading Thread selection/control Multi-process Connecting to running processes Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 9
  • 10. Debug Perspective Breadcrumb activated when you reduce Debug view to 1 line Worker thread creation loop for the multi-thread example Timer thread creation Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 10
  • 11. Non-Stop Multi-Threading Multi-thread apps can be debugged in either all-stop (freeze) or non-stop mode Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 11
  • 12. Non-Stop Multi-Threading Worker threads 3 and 4 are stopped on the breakpoint (line 64) Threads 1 and 2 (main and timer thread) are still running Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 12
  • 13. Non-Stop Multi-Threading Breakpoint is filtered out for thread 3 i.e. only thread 4 will stop on the breakpoint now Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 13
  • 14. Non-Stop Multi-Threading You have full control over individual or all threads (suspend, resume, stop, …) And voila! Thread 4 is stopped while thread 3 happily does its job Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 14
  • 15. Multi-Process Dynamically connect to and disconnect from processes Multiple processes running in the same launch. They can be individually controlled and inspected. Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 15
  • 16. Multi-Process Connect: you can attach to any running process Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 16
  • 17. Multi-Process And voila! The selected is added. Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 17
  • 18. Upcoming Debugging Features Reverse Debugging Tracepoints Multi-exec True GDB Server Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 18
  • 19. Reverse Debugging Allows to step program backwards and forwards Avoids repeating test over and over to gradually hone in on bug Allows to replay a bug Allows to go back and change program execution without having to recompile and repeat the test (some targets) Often available in simulators/emulators VMWare Simics Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 19
  • 20. Reverse Debugging IDE front-end support now part of the CDT Buttons, menus and key bindings for Reverse Resume Reverse StepIn Reverse StepOver Uncall Perspective customization to show/hide these new UI features Availability for extension Currently in DSF-GDB Will eventually migrate to DSF May even go to Debug Platform Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 20
  • 21. GDB and Reverse Debugging Reverse Debugging infrastructure in GDB HEAD Allows to hook to target that support reverse Linux PRecord (Process Record and Replay) in GDB HEAD By Hui Zhu (Teawater) For Linux target Records memory and register changes 3 minor fixes are still awaiting approval Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 21
  • 22. Demo 2 Reverse Debugging New reverse debugging action set Reverse step-in, reverse step-over, resume, uncall Buttons, key bindings and menus Launch option Views in reverse Change execution path Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 22
  • 23. Reverse Debugging Action set needs to be selected for the perspective Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 23
  • 24. Reverse Debugging New buttons to control reverse execution To toggle reverse debugging and display new control buttons Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 24
  • 25. Tracepoints Dynamic tracepoints Add instrumentation to running code Low-overhead Enable/Disable dynamically Trigger on user-defined condition Off-line tracing Trace collection from target Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 25
  • 26. Multi-Exec In CDT 6.0 Multi-process support in DSF Attaching to multiple processes in DSF-GDB Next steps: DSF-GDB support for launching multiple processes in the same debug session GDB support for Multi-process on Linux (should be part of the next release of GDB) Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 26
  • 27. True GDB Server GDB provides gdbserver Allows to debug remote program on Linux Can be used as a basis to write a new debug server for your own OS Accepts a single GDB connection Usually started manually before beginning debugging session True gdbserver Daemon Accepts multiple GDB connections Ready for debugging at any time Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 27
  • 28. Additional Information Contacts Marc Khouzam, marc.khouzam@ericsson.com François Chouinard, francois.chouinard@ericsson.com Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 28
  • 29. Questions? Copyright © 2009 Ericsson, Made available under the Eclipse Public License v 1.0 29