SlideShare a Scribd company logo
1 of 29
Download to read offline
1




Staying ahead of the multi-core revolution
            with CDT Debug

                                           Patrick Chuong, Texas Instruments
                                             Dobrin Alexiev, Texas Instruments
                                               Marc Khouzam, Ericsson Canada

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

          The multi-core problem


          Multicore Debug Workgroup


          New features
                     Multi-process
                     Pin&Clone
                     Enhanced breakpoints
                     Grouping
                     Visualizer view


          Plans
          Live Demos
Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   2
Multi-core problems – scalability and complexity

          Scalability: more CPUs, DSPs, processes, threads...
          Complexity of user tasks:
                  Users still focus mostly on few entities –CPUs, threads
                  Sometimes they need to see the whole system: all CPUs, all threads
                  Users need to be able to customize their view of the system
                          Group or hide CPUs, threads, types of nodes
                              step these threads simultaneously
                              set breakpoints that apply only to these CPUs
                          Define different layouts that fit their current task
                              See the system in terms of JTAG connectivity, power
                              Separate system threads from user threads
          Debug View is getting crowded…
                  but still is the main view for debugging the system

Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   3
Multi-core – solutions

          Ways of managing complexity and scalability
                  The users can switch between multiple layouts in the Debug View
                          JTAG layout, Power layout, CPU affinity layout
                  The user can hide nodes or node types in the Debug View
                          JTAG connections, all processes nodes, system threads, etc.
                  The user can group nodes in the Debug View
                          Stepping the group node will step all threads in the group
                          Breakpoints can be added to all threads in the group
                  Display the system in multiple views simultaneously
                          Visualizer view, Status view, etc.
                          The user can perform synchronized run control operations
                          The selection in these views can drive the data displayed in the
                           other debugger views: Registers, Variables, Memory, etc.


Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   4
CDT’s Multicore Debug Workgroup

          Joint effort by people/companies interested in bringing
           ‘multicore’ debugging to the CDT
          Goals
                  Provide a good user experience for multicore debugging in CDT
                  Determine debugging features of interest
                  Collaborate to bring each feature to CDT: design, implementation,
                   review, test.
          History
                  Workgroup was first proposed at the CDT Summit 2010 and was
                   created in early October 2010
                  Work began with the first conference call on November 16th.
                  10 different companies are regular participants



Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   5
CDT’s Multicore Debug Workgroup

          Wiki page can be found in the “Workgroups” section of the CDT
           wiki, or directly at:
                  http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup
                  Conference Call scheduling
                  Completed features
                  Features currently of interest
                  Other proposed features


          Conference calls are held every two weeks with minutes of
           meetings posted on the wiki
          Open to anyone interested (its free☺)



Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   6
New features

          Multi-process

          Pin & Clone


          Enhanced breakpoints


          Grouping


          Visualizer view




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   7
Multi-process debugging
     Allows to debug multiple processes of a target in the same session
     Good for debugging process interactions
     Now available in CDT, for Linux targets when using GDB 7.2




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   8
Multi-process debugging
 Combines debugging of running processes and new processes

 Works for local
  debugging and
  remote
  debugging


 Will work in both
  non-stop or all-
  stop modes




 Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   9
New features

          Multi-process


          Pin & Clone

          Enhanced breakpoints


          Grouping


          Visualizer view




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   10
Pin & Clone - Background
        What is Pin & Clone?
                 Clone: enable multiple debug view instances in the same
                  workbench window i.e Variables
                 Pin: attach a debug view instance to a set of debug context i.e
                  Threads


        Problem: ability to compare data from multiple
         processes/threads


        Solution: open multiple view instances and attach the view
         instances to a set of debug context




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   11
Pin & Clone - Features
          Debug views that support Pin & Clone
                  Variables, Expressions, Registers, Memory Browser, and
                   Disassembly
          Main feature set
                  Views that are pinned will have the pin context(s) label shown in
                   it’s description area and the pin toolbar bar icon will have matching
                   overlay icon in the Debug View
                  View toolbar icon shows multi-pin contexts when more than one
                   debug context is selected, extendable by the backend
                  View tab label will be numerically indexed
                  Pinned context(s) will reattach itself when a launch is terminate
                   and restart
          Available in CDT 8.0 M6 for DSF-GDB backend
          Extendable and customizable by debugger backend


Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   12
Pin & Clone – Multi-View Instances
          Compare data between two debug sessions
          Two Variables views
                  Views are pinned to a thread in each debug session




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   13
Pin & Clone – Multiple pinned contexts
          Limit a view to a sub-set of context
          One Variables view
                  View is pinned to two threads, switching between these two thread
                   will cause the view to update




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   14
New features

          Multi-process


          Pin & Clone


          Enhanced breakpoints

          Grouping


          Visualizer view




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   15
Enhanced Breakpoint Support

          Current limitations:
                  Installed for all threads/cores
                  Can’t configure properties before install to backend
                  Not scalable, restricted UI
                          New h/w capability isn’t dynamically exposed in UI
                          Does not make use of flexible viewer from Platform Debug
                  No indication which thread/core the breakpoint is hit




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   16
Breakpoint View Example: TI UBM

          A debug session with two cores
          An address breakpoint is installed on C55xx core
                  With condition z2 == 20 and action to update Register view
          A source line breakpoint is installed on C6416 core
                  With action to Halt (suspend)
          Marker icon with >>> indicates breakpoint has recently hit




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0
Create Breakpoint Example: TI UBM

          Available supported breakpoint type menu for the active debug context
           i.e Thread
          New Watchpoint type dialog
          New Advanced type dialog
                  Dynamic breakpoint properties
          Contextual breakpoint type menu support for
           Editor, Disassembly view, Project view,
           Outline view, etc…




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0
New features

          Multi-process


          Pin & Clone


          Enhanced breakpoints


          Grouping

          Visualizer view




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   19
Debug View User Groups
          Why?
                  focus on few entities –CPUs, threads
                  step multiple threads simultaneously
                  set breakpoints that apply to multiple CPUs
          How?
                  choose the Debug View context menu “Group” when multiple nodes
                   are selected. A group is created as parent of the selected nodes
                  stepping the group node will step all threads in the group
                  the group icon will show the state of all threads in the group
                  the user can ungroup threads previously grouped
                  the groups will be persisted between debug sessions
                  groups can contain other groups



Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   20
Debug View User Groups – integration

          Available for CDT-DSF debuggers
          Currently part of the code is in DSF common
           layer, part is in the DSF-GDB debugger.
          The common layer enables other DSF
           debuggers to integrate the feature easily.
          Different backend capabilities can be provided:
                  Some backends can support the user groups,
                   for some the user groups will be transparent.
                  For some backends stepping, running or
                   suspending groups will be different than the
                   same command issued to multiple threads.




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   21
New features

          Multi-process


          Pin & Clone


          Enhanced breakpoints


          Grouping


          Visualizer view



Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   22
Visualizer View

          Eclipse Debug View centric to debug session
          Debug View has limitations
          Need for a graphical debugging view: Visualizer View
                  Complement to the Debug View
                  Efficient representation of a large amount of data
                  Quick visual access to system state


          Meant to be a framework to allow for different graphical
           representations
          Design has been started and posted to the wiki



Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   23
Visualizer View Example: Tilera’s Grid
 An instance of a representation. Hardware-centric.
 Part of the goals of the CDT Visualizer View




 Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   24
Visualizer View Example: Tilera’s Grid

 Color indicates application state
       yellow = stopped on a breakpoint
       red = process crash
 Dots are the processes
 IO and Memory shown on the edges
 Drag selection of processes/threads
 Allows to control execution
       Resume/Suspend
       Step
 Selection in the Grid is reflected in
  Debug view and all other views


 Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   25
Plans
        Indigo CDT 8.0
                 Pin & Clone Support (completed)
                 Multi-Process (working support)
                 Group & Ungroup (preliminary support)
                 Synchronized run control operation
        Post Indigo CDT 8.0+
                 Graphical Visualizer view
                 Enhanced breakpoint support
                 Hiding of debug view elements
                 OS-awareness
                 Global breakpoints




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   26
Points of Contact

          CDT Mailing list:
                  cdt-dev@eclipse.org


          CDT Wiki:
                  http://wiki.eclipse.org/CDT


          Multicore Debug Wiki:
                  http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   27
Demos

          Multi-process



          Pin & Clone



          Grouping




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




Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0   29

More Related Content

What's hot

Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012EneaSoftware
 
Comp tia n+_session_12
Comp tia n+_session_12Comp tia n+_session_12
Comp tia n+_session_12Niit Care
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorialoscon2007
 
Comp tia a+_session_05
Comp tia a+_session_05Comp tia a+_session_05
Comp tia a+_session_05Niit Care
 
Comp tia n+_session_09
Comp tia n+_session_09Comp tia n+_session_09
Comp tia n+_session_09Niit Care
 
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDTReverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDTmarckhouzam
 
Using OSGi to Build Better Software
Using OSGi to Build Better SoftwareUsing OSGi to Build Better Software
Using OSGi to Build Better Softwareyocaba
 
OSGi-based Workflow Engine
OSGi-based Workflow EngineOSGi-based Workflow Engine
OSGi-based Workflow Engineyocaba
 
Comp tia n+_session_07
Comp tia n+_session_07Comp tia n+_session_07
Comp tia n+_session_07Niit Care
 
Comp tia n+_session_02
Comp tia n+_session_02Comp tia n+_session_02
Comp tia n+_session_02Niit Care
 
Dalvik Vm & Jit
Dalvik Vm & JitDalvik Vm & Jit
Dalvik Vm & JitAnkit Somani
 
Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011Stefane Fermigier
 
Keynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM VirtualizationKeynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM VirtualizationThe Linux Foundation
 
Comp tia a+_session_15
Comp tia a+_session_15Comp tia a+_session_15
Comp tia a+_session_15Niit Care
 

What's hot (20)

Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Comp tia n+_session_12
Comp tia n+_session_12Comp tia n+_session_12
Comp tia n+_session_12
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorial
 
Comp tia a+_session_05
Comp tia a+_session_05Comp tia a+_session_05
Comp tia a+_session_05
 
Comp tia n+_session_09
Comp tia n+_session_09Comp tia n+_session_09
Comp tia n+_session_09
 
Puppet for Junos
Puppet for JunosPuppet for Junos
Puppet for Junos
 
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDTReverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
Using OSGi to Build Better Software
Using OSGi to Build Better SoftwareUsing OSGi to Build Better Software
Using OSGi to Build Better Software
 
Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
 
OSGi-based Workflow Engine
OSGi-based Workflow EngineOSGi-based Workflow Engine
OSGi-based Workflow Engine
 
Comp tia n+_session_07
Comp tia n+_session_07Comp tia n+_session_07
Comp tia n+_session_07
 
666 670
666 670666 670
666 670
 
Comp tia n+_session_02
Comp tia n+_session_02Comp tia n+_session_02
Comp tia n+_session_02
 
Dalvik Vm & Jit
Dalvik Vm & JitDalvik Vm & Jit
Dalvik Vm & Jit
 
SocialZap
SocialZapSocialZap
SocialZap
 
Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011
 
Keynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM VirtualizationKeynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM Virtualization
 
Comp tia a+_session_15
Comp tia a+_session_15Comp tia a+_session_15
Comp tia a+_session_15
 

Viewers also liked

Seeing is Understanding: Debugging with the Multicore Visualizer
Seeing is Understanding: Debugging with the Multicore Visualizer Seeing is Understanding: Debugging with the Multicore Visualizer
Seeing is Understanding: Debugging with the Multicore Visualizer marckhouzam
 
Code Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDTCode Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDTdschaefer
 
Advanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTngAdvanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTngmarckhouzam
 
Real-time Debugging using GDB Tracepoints and other Eclipse features
Real-time Debugging using GDB Tracepoints and other Eclipse features Real-time Debugging using GDB Tracepoints and other Eclipse features
Real-time Debugging using GDB Tracepoints and other Eclipse features marckhouzam
 
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
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Viewers also liked (6)

Seeing is Understanding: Debugging with the Multicore Visualizer
Seeing is Understanding: Debugging with the Multicore Visualizer Seeing is Understanding: Debugging with the Multicore Visualizer
Seeing is Understanding: Debugging with the Multicore Visualizer
 
Code Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDTCode Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDT
 
Advanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTngAdvanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTng
 
Real-time Debugging using GDB Tracepoints and other Eclipse features
Real-time Debugging using GDB Tracepoints and other Eclipse features Real-time Debugging using GDB Tracepoints and other Eclipse features
Real-time Debugging using GDB Tracepoints and other Eclipse features
 
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
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similar to Staying ahead of the multi-core revolution with CDT debug

Fosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationFosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationThe Linux Foundation
 
“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...
“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...
“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...Edge AI and Vision Alliance
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesSamuel Dratwa
 
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins WayOpening opensource : The Jenkins Way
Opening opensource : The Jenkins WayNicolas De Loof
 
What's New in Docker
What's New in DockerWhat's New in Docker
What's New in DockerDocker, Inc.
 
Docker EE 2.0 Choice, Security & Agility
Docker EE 2.0Choice, Security & AgilityDocker EE 2.0Choice, Security & Agility
Docker EE 2.0 Choice, Security & AgilityAshnikbiz
 
OSDC 2012 | OpenNebula Tutorial by Constantino Vazquez Blanco
OSDC 2012 | OpenNebula Tutorial by Constantino Vazquez BlancoOSDC 2012 | OpenNebula Tutorial by Constantino Vazquez Blanco
OSDC 2012 | OpenNebula Tutorial by Constantino Vazquez BlancoNETWAYS
 
OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021The Khronos Group Inc.
 
2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov Update2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov UpdateThe Linux Foundation
 
Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiatedKevin Lee
 
exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxApkaAmitbro
 
Modern apps with dcos
Modern apps with dcosModern apps with dcos
Modern apps with dcosSam Chen
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeLee Calcote
 
Scale14x: Are today's foss security practices robust enough in the cloud era ...
Scale14x: Are today's foss security practices robust enough in the cloud era ...Scale14x: Are today's foss security practices robust enough in the cloud era ...
Scale14x: Are today's foss security practices robust enough in the cloud era ...The Linux Foundation
 
Rootlinux17: An introduction to Xen Project Virtualisation
Rootlinux17:  An introduction to Xen Project VirtualisationRootlinux17:  An introduction to Xen Project Virtualisation
Rootlinux17: An introduction to Xen Project VirtualisationThe Linux Foundation
 
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
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetesElad Hirsch
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Statusgustavoeliano
 
Developing applications using Embedded Rich Client Platform (eRCP)
Developing applications using Embedded Rich Client Platform (eRCP)Developing applications using Embedded Rich Client Platform (eRCP)
Developing applications using Embedded Rich Client Platform (eRCP)Gorkem Ercan
 

Similar to Staying ahead of the multi-core revolution with CDT debug (20)

Fosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationFosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using Virtualization
 
“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...
“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...
“Khronos Group Standards: Powering the Future of Embedded Vision,” a Presenta...
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins WayOpening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
 
What's New in Docker
What's New in DockerWhat's New in Docker
What's New in Docker
 
Docker EE 2.0 Choice, Security & Agility
Docker EE 2.0Choice, Security & AgilityDocker EE 2.0Choice, Security & Agility
Docker EE 2.0 Choice, Security & Agility
 
OSDC 2012 | OpenNebula Tutorial by Constantino Vazquez Blanco
OSDC 2012 | OpenNebula Tutorial by Constantino Vazquez BlancoOSDC 2012 | OpenNebula Tutorial by Constantino Vazquez Blanco
OSDC 2012 | OpenNebula Tutorial by Constantino Vazquez Blanco
 
OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021
 
2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov Update2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov Update
 
Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiated
 
exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docx
 
Modern apps with dcos
Modern apps with dcosModern apps with dcos
Modern apps with dcos
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
Scale14x: Are today's foss security practices robust enough in the cloud era ...
Scale14x: Are today's foss security practices robust enough in the cloud era ...Scale14x: Are today's foss security practices robust enough in the cloud era ...
Scale14x: Are today's foss security practices robust enough in the cloud era ...
 
Rootlinux17: An introduction to Xen Project Virtualisation
Rootlinux17:  An introduction to Xen Project VirtualisationRootlinux17:  An introduction to Xen Project Virtualisation
Rootlinux17: An introduction to Xen Project Virtualisation
 
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...
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Status
 
Studienarb linux kernel-dev
Studienarb linux kernel-devStudienarb linux kernel-dev
Studienarb linux kernel-dev
 
Developing applications using Embedded Rich Client Platform (eRCP)
Developing applications using Embedded Rich Client Platform (eRCP)Developing applications using Embedded Rich Client Platform (eRCP)
Developing applications using Embedded Rich Client Platform (eRCP)
 

Recently uploaded

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 
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
 
[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 Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
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
 
[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 Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Staying ahead of the multi-core revolution with CDT debug

  • 1. 1 Staying ahead of the multi-core revolution with CDT Debug Patrick Chuong, Texas Instruments Dobrin Alexiev, Texas Instruments Marc Khouzam, Ericsson Canada Copyright © 2011 Ericsson,Date Instruments, Made available under the Eclipse Public License v 1.0 Confidential | Texas | Other Information, if necessary © 2002 IBM Corporation
  • 2. Agenda  The multi-core problem  Multicore Debug Workgroup  New features  Multi-process  Pin&Clone  Enhanced breakpoints  Grouping  Visualizer view  Plans  Live Demos Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 2
  • 3. Multi-core problems – scalability and complexity  Scalability: more CPUs, DSPs, processes, threads...  Complexity of user tasks:  Users still focus mostly on few entities –CPUs, threads  Sometimes they need to see the whole system: all CPUs, all threads  Users need to be able to customize their view of the system  Group or hide CPUs, threads, types of nodes  step these threads simultaneously  set breakpoints that apply only to these CPUs  Define different layouts that fit their current task  See the system in terms of JTAG connectivity, power  Separate system threads from user threads  Debug View is getting crowded…  but still is the main view for debugging the system Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 3
  • 4. Multi-core – solutions  Ways of managing complexity and scalability  The users can switch between multiple layouts in the Debug View  JTAG layout, Power layout, CPU affinity layout  The user can hide nodes or node types in the Debug View  JTAG connections, all processes nodes, system threads, etc.  The user can group nodes in the Debug View  Stepping the group node will step all threads in the group  Breakpoints can be added to all threads in the group  Display the system in multiple views simultaneously  Visualizer view, Status view, etc.  The user can perform synchronized run control operations  The selection in these views can drive the data displayed in the other debugger views: Registers, Variables, Memory, etc. Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 4
  • 5. CDT’s Multicore Debug Workgroup  Joint effort by people/companies interested in bringing ‘multicore’ debugging to the CDT  Goals  Provide a good user experience for multicore debugging in CDT  Determine debugging features of interest  Collaborate to bring each feature to CDT: design, implementation, review, test.  History  Workgroup was first proposed at the CDT Summit 2010 and was created in early October 2010  Work began with the first conference call on November 16th.  10 different companies are regular participants Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 5
  • 6. CDT’s Multicore Debug Workgroup  Wiki page can be found in the “Workgroups” section of the CDT wiki, or directly at:  http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup  Conference Call scheduling  Completed features  Features currently of interest  Other proposed features  Conference calls are held every two weeks with minutes of meetings posted on the wiki  Open to anyone interested (its free☺) Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 6
  • 7. New features  Multi-process  Pin & Clone  Enhanced breakpoints  Grouping  Visualizer view Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 7
  • 8. Multi-process debugging  Allows to debug multiple processes of a target in the same session  Good for debugging process interactions  Now available in CDT, for Linux targets when using GDB 7.2 Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 8
  • 9. Multi-process debugging  Combines debugging of running processes and new processes  Works for local debugging and remote debugging  Will work in both non-stop or all- stop modes Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 9
  • 10. New features  Multi-process  Pin & Clone  Enhanced breakpoints  Grouping  Visualizer view Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 10
  • 11. Pin & Clone - Background  What is Pin & Clone?  Clone: enable multiple debug view instances in the same workbench window i.e Variables  Pin: attach a debug view instance to a set of debug context i.e Threads  Problem: ability to compare data from multiple processes/threads  Solution: open multiple view instances and attach the view instances to a set of debug context Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 11
  • 12. Pin & Clone - Features  Debug views that support Pin & Clone  Variables, Expressions, Registers, Memory Browser, and Disassembly  Main feature set  Views that are pinned will have the pin context(s) label shown in it’s description area and the pin toolbar bar icon will have matching overlay icon in the Debug View  View toolbar icon shows multi-pin contexts when more than one debug context is selected, extendable by the backend  View tab label will be numerically indexed  Pinned context(s) will reattach itself when a launch is terminate and restart  Available in CDT 8.0 M6 for DSF-GDB backend  Extendable and customizable by debugger backend Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 12
  • 13. Pin & Clone – Multi-View Instances  Compare data between two debug sessions  Two Variables views  Views are pinned to a thread in each debug session Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 13
  • 14. Pin & Clone – Multiple pinned contexts  Limit a view to a sub-set of context  One Variables view  View is pinned to two threads, switching between these two thread will cause the view to update Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 14
  • 15. New features  Multi-process  Pin & Clone  Enhanced breakpoints  Grouping  Visualizer view Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 15
  • 16. Enhanced Breakpoint Support  Current limitations:  Installed for all threads/cores  Can’t configure properties before install to backend  Not scalable, restricted UI  New h/w capability isn’t dynamically exposed in UI  Does not make use of flexible viewer from Platform Debug  No indication which thread/core the breakpoint is hit Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 16
  • 17. Breakpoint View Example: TI UBM  A debug session with two cores  An address breakpoint is installed on C55xx core  With condition z2 == 20 and action to update Register view  A source line breakpoint is installed on C6416 core  With action to Halt (suspend)  Marker icon with >>> indicates breakpoint has recently hit Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0
  • 18. Create Breakpoint Example: TI UBM  Available supported breakpoint type menu for the active debug context i.e Thread  New Watchpoint type dialog  New Advanced type dialog  Dynamic breakpoint properties  Contextual breakpoint type menu support for Editor, Disassembly view, Project view, Outline view, etc… Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0
  • 19. New features  Multi-process  Pin & Clone  Enhanced breakpoints  Grouping  Visualizer view Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 19
  • 20. Debug View User Groups  Why?  focus on few entities –CPUs, threads  step multiple threads simultaneously  set breakpoints that apply to multiple CPUs  How?  choose the Debug View context menu “Group” when multiple nodes are selected. A group is created as parent of the selected nodes  stepping the group node will step all threads in the group  the group icon will show the state of all threads in the group  the user can ungroup threads previously grouped  the groups will be persisted between debug sessions  groups can contain other groups Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 20
  • 21. Debug View User Groups – integration  Available for CDT-DSF debuggers  Currently part of the code is in DSF common layer, part is in the DSF-GDB debugger.  The common layer enables other DSF debuggers to integrate the feature easily.  Different backend capabilities can be provided:  Some backends can support the user groups, for some the user groups will be transparent.  For some backends stepping, running or suspending groups will be different than the same command issued to multiple threads. Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 21
  • 22. New features  Multi-process  Pin & Clone  Enhanced breakpoints  Grouping  Visualizer view Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 22
  • 23. Visualizer View  Eclipse Debug View centric to debug session  Debug View has limitations  Need for a graphical debugging view: Visualizer View  Complement to the Debug View  Efficient representation of a large amount of data  Quick visual access to system state  Meant to be a framework to allow for different graphical representations  Design has been started and posted to the wiki Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 23
  • 24. Visualizer View Example: Tilera’s Grid  An instance of a representation. Hardware-centric.  Part of the goals of the CDT Visualizer View Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 24
  • 25. Visualizer View Example: Tilera’s Grid  Color indicates application state  yellow = stopped on a breakpoint  red = process crash  Dots are the processes  IO and Memory shown on the edges  Drag selection of processes/threads  Allows to control execution  Resume/Suspend  Step  Selection in the Grid is reflected in Debug view and all other views Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 25
  • 26. Plans  Indigo CDT 8.0  Pin & Clone Support (completed)  Multi-Process (working support)  Group & Ungroup (preliminary support)  Synchronized run control operation  Post Indigo CDT 8.0+  Graphical Visualizer view  Enhanced breakpoint support  Hiding of debug view elements  OS-awareness  Global breakpoints Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 26
  • 27. Points of Contact  CDT Mailing list:  cdt-dev@eclipse.org  CDT Wiki:  http://wiki.eclipse.org/CDT  Multicore Debug Wiki:  http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 27
  • 28. Demos  Multi-process  Pin & Clone  Grouping Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 28
  • 29. Questions? Copyright © 2011 Ericsson, Texas Instruments, Made available under the Eclipse Public License v 1.0 29