SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

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
EneaSoftware
 
Comp tia n+_session_12
Comp tia n+_session_12Comp tia n+_session_12
Comp tia n+_session_12
Niit Care
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorial
oscon2007
 
Comp tia a+_session_05
Comp tia a+_session_05Comp tia a+_session_05
Comp tia a+_session_05
Niit Care
 
Comp tia n+_session_09
Comp tia n+_session_09Comp tia n+_session_09
Comp tia n+_session_09
Niit Care
 
Using OSGi to Build Better Software
Using OSGi to Build Better SoftwareUsing OSGi to Build Better Software
Using OSGi to Build Better Software
yocaba
 
OSGi-based Workflow Engine
OSGi-based Workflow EngineOSGi-based Workflow Engine
OSGi-based Workflow Engine
yocaba
 
Comp tia n+_session_07
Comp tia n+_session_07Comp tia n+_session_07
Comp tia n+_session_07
Niit Care
 
Comp tia n+_session_02
Comp tia n+_session_02Comp tia n+_session_02
Comp tia n+_session_02
Niit Care
 
Dalvik Vm & Jit
Dalvik Vm & JitDalvik Vm & Jit
Dalvik Vm & Jit
Ankit 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 2011
Stefane Fermigier
 
Comp tia a+_session_15
Comp tia a+_session_15Comp tia a+_session_15
Comp tia a+_session_15
Niit Care
 

Mais procurados (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
 

Destaque

Code Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDTCode Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDT
dschaefer
 

Destaque (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
 

Semelhante a 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 Virtualization
The 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
 
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins WayOpening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Nicolas De Loof
 
exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docx
ApkaAmitbro
 
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
 

Semelhante a 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)
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

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