SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Advanced Tracing Features
using GDB and LTTng
GCC Summit 2010
2010-10-26
francois.chouinard@ericsson.com
marc.khouzam@ericsson.com
© Ericsson | GCC Summit 2010
› What is Tracing?
› The Linux Tracing Toolkit next generation (LTTng)
› User-space Tracer (UST)
› Eclipse Tracing and Monitoring Framework
– LTTng Eclipse Integration
– Perspective and Views
– Upcoming Features
› Integration with GDB Tracepoints
› Getting Eclipse to work for you in under a minute
Summary
© Ericsson | GCC Summit 2010
What is Tracing?
› Technique used to collect info to debug/monitor a system
› Often used when debuggers are too intrusive
– Real-time system
– Live system
– Race condition
› Also used for performance tuning
› Like logging but records events that:
– happen much more frequently (gigabytes of data collected)
– can be at a much lower level (system calls, scheduling, interrupts)
› Requires efficient visualization tool to make sense of the vast
amount of data collected
© Ericsson | GCC Summit 2010
Interest in Tracing
› The interest in tracing is growing tremendously.
› Involvement from such companies :
– Google
– QNX
– CodeSourcery
– FreeScale
– MentorGraphics
– Texas Instrument
– Red Hat
– WindRiver
– Ericsson
– etc...
© Ericsson | GCC Summit 2010
Linux Tracing Toolkit
› Open-source project (http://www.lltng.org)
› Aims at producing a highly efficient full system tracing solution
› Composed of several components
– Kernel tracing
– User-space tracing
– Trace viewer
– Trace streaming
› Partially already included in the Linux Kernel
© Ericsson | GCC Summit 2010
Linux Tracing Toolkit
› Highly optimized static tracepoints
› Highly compact binary trace format
› Efficient probes which do not use traps or system calls
› Almost zero performance impact with instrumentation points
disabled
› Active instrumentation points have low performance impact
› Zero copy from event generation to disk write
› ...
© Ericsson | GCC Summit 2010
User-Space Tracer (UST)
› Static tracepoints for user-space
› Port of the LTTng kernel tracer to user-space
› Like LTTng performance is the main goal
– Tracing does not require system calls or traps
› Tracepoints may be added in any user-space code
– Multi-threaded applications
– signal handlers
– libraries
› Programs must be compiled with libust (-lust)
© Ericsson | GCC Summit 2010
User-Space Tracer (UST)
› Example of Marker in servers/slapd/search.c
› Command: ldapsearch -b “dc=rlnx,dc=com”
› Marker output: { “DN” = “dc=rlnx,dc=com” }
› Can be controlled and used by GDB for static tracing
© Ericsson | GCC Summit 2010
Trace visualization
› Originally, making use of LTTng with LTTv
› Integration of many different tools in Eclipse makes Eclipse
a better fit
› Focus is now on the new LTTng integration in Eclipse
© Ericsson | GCC Summit 2010
TargetHost
Eclipse
Shell cmd
LTTng
RSE/TCF
TMF
C/C++
App
Java App Whatever
Kernel Space
TCF
Agent
lttd lttctl
Patched
Kernel
libust libust libust
libustd
libustlibust
libustctl
Local FS
C adapterC adapter
LTTng Eclipse Integration
© Ericsson | GCC Summit 2010
TMF
ControlFlow
View
Resources
View
Statistics
View
Kernel State
System
Events
View
Histogram
View
Trace
Parsing
Lib
Experiment/
Traceset
Trace nTrace 1
Project
View
Some other
Analysis Tool
Some other
View
JNI
LTTng Eclipse Architecture
© Ericsson | GCC Summit 2010
LTTng Perspective
© Ericsson | GCC Summit 2010
LTTng – Project View
› Projects are used to group
traces that you wish to
correlate
› Experiments are specific
correlations between
selected trace files
› Traces are all trace files
currently included in the
project
© Ericsson | GCC Summit 2010
LTTng – Events View
› 'Raw' merged events in chronological order
› Synchronized on timestamp with other views
› Upcoming feature:
– Event filtering on time range, event type, field value (e.g. pid), …
– Individual trace tabs
© Ericsson | GCC Summit 2010
› Event distribution over full traceset and selected window
› Controls to modify current event and event window
› Synchronized on current window and current event
› Upcoming feature:
– Zooming the selected window using the mouse
LTTng – Histogram View
© Ericsson | GCC Summit 2010
› Displays processes states (color-coded) over time
› State 'tooltips‘ through hovering
› Zooming and filtering
› Quick navigation between processes, states
› Upcoming features :
– Color legend
– Configurable color scheme
LTTng – Control Flow View
© Ericsson | GCC Summit 2010
› Displays system resource states (color-coded) over time
› State 'tooltips'
› Zooming and filtering
› Quick navigation between resources, states
› Upcoming features :
– Color legend
– Configurable color scheme
LTTng – Resources View
© Ericsson | GCC Summit 2010
› Displays basic CPU usage statistics
› Upcoming feature:
– Make the view generic (decoupled from the kernel events structure)
LTTng – Statistics View
© Ericsson | GCC Summit 2010
› General
– Tracing tool control
– Trace streaming
– Correlation of heterogeneous traces
– User Space Tracing
– Source lookup
– Performance tuning
› Analyses
– Time correction (traces synchronization)
› Multi-core, multi-level, multi-node
– Timing dependencies (processes interactions e.g. startup time)
– Pattern matching (security e.g. intrusion detection)
LTTng – Upcoming Features
© Ericsson | GCC Summit 2010
Integration with GDB Tracepoints
› GDB Tracepoints are currently visualized through the
debugger views
› Current work to use TMF/LTTng views with GDB Tracepoints
– Histogram view
– Events view
› Other discussed visualizations such as :
– Variable variation over time
© Ericsson | GCC Summit 2010
LTTng Eclipse Project (http://www.eclipse.org/linuxtools/projectPages/lttng)
LTTng Eclipse Wiki (http://wiki.eclipse.org/Linux_Tools_Project/LTTng)
Linux Tools (http://www.eclipse.org/linuxtools/index.php)
Update Site (http://download.eclipse.org/technology/linuxtools/update)
LTTng Project (http://lttng.org)
Tracing Wiki (http://lttng.org/tracingwiki/index.php/TracingBook)
LTTng – Pointers
© Ericsson | GCC Summit 2010
Getting Eclipse to work for you in under a
minute
1.Downloading Eclipse Linux Package:
•
http://eclipse.org/downloads
•
Choose: “Eclipse IDE for C/C++ Linux Developers”
2.Extract it: tar xf <packageFile>
3.Run it: cd <packageDir> ; ./eclipse
4.Create a (dummy) C/C++ project: “Hello World” is fine
5.Start debugging... GDB... GCC... etc...
© Ericsson | GCC Summit 2010
Questions?
© Ericsson | GCC Summit 2010

Contenu connexe

Tendances

BKK16-203 Irq prediction or how to better estimate idle time
BKK16-203 Irq prediction or how to better estimate idle timeBKK16-203 Irq prediction or how to better estimate idle time
BKK16-203 Irq prediction or how to better estimate idle timeLinaro
 
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
 
Performance Tuning - Understanding Garbage Collection
Performance Tuning - Understanding Garbage CollectionPerformance Tuning - Understanding Garbage Collection
Performance Tuning - Understanding Garbage CollectionHaribabu Nandyal Padmanaban
 
BKK16-306 ART ii
BKK16-306 ART iiBKK16-306 ART ii
BKK16-306 ART iiLinaro
 
Native Java with GraalVM
Native Java with GraalVMNative Java with GraalVM
Native Java with GraalVMSylvain Wallez
 
JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020Joseph Kuo
 
Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?ScyllaDB
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLinaro
 
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...Linaro
 
Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientistsaspyker
 
Using eBPF to Measure the k8s Cluster Health
Using eBPF to Measure the k8s Cluster HealthUsing eBPF to Measure the k8s Cluster Health
Using eBPF to Measure the k8s Cluster HealthScyllaDB
 
20110421 02 15分でrails3サーバ作成
20110421 02 15分でrails3サーバ作成20110421 02 15分でrails3サーバ作成
20110421 02 15分でrails3サーバ作成雄哉 吉田
 
LAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLinaro
 
Pull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkPull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkJulian Dunn
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustScyllaDB
 
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...Takahiro Harada
 

Tendances (19)

BKK16-203 Irq prediction or how to better estimate idle time
BKK16-203 Irq prediction or how to better estimate idle timeBKK16-203 Irq prediction or how to better estimate idle time
BKK16-203 Irq prediction or how to better estimate idle time
 
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
 
Performance Tuning - Understanding Garbage Collection
Performance Tuning - Understanding Garbage CollectionPerformance Tuning - Understanding Garbage Collection
Performance Tuning - Understanding Garbage Collection
 
BKK16-306 ART ii
BKK16-306 ART iiBKK16-306 ART ii
BKK16-306 ART ii
 
Native Java with GraalVM
Native Java with GraalVMNative Java with GraalVM
Native Java with GraalVM
 
JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020
 
Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
 
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
 
Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientists
 
Optimizing Java Notes
Optimizing Java NotesOptimizing Java Notes
Optimizing Java Notes
 
Kraken mesoscon 2018
Kraken mesoscon 2018Kraken mesoscon 2018
Kraken mesoscon 2018
 
Using eBPF to Measure the k8s Cluster Health
Using eBPF to Measure the k8s Cluster HealthUsing eBPF to Measure the k8s Cluster Health
Using eBPF to Measure the k8s Cluster Health
 
20110421 02 15分でrails3サーバ作成
20110421 02 15分でrails3サーバ作成20110421 02 15分でrails3サーバ作成
20110421 02 15分でrails3サーバ作成
 
LAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backporting
 
Pull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkPull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 Talk
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in Rust
 
How long can you afford to Stop The World?
How long can you afford to Stop The World?How long can you afford to Stop The World?
How long can you afford to Stop The World?
 
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
 

En vedette

Bridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingBridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingChristian Babeux
 
Exploring SoC Peripherals with Eclipse C/C++ IDE
Exploring SoC Peripherals with Eclipse C/C++ IDEExploring SoC Peripherals with Eclipse C/C++ IDE
Exploring SoC Peripherals with Eclipse C/C++ IDEvalentin_ciocoi
 
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
 
LTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space TracingLTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space TracingChristian Babeux
 
From printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debuggingFrom printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debuggingThe Linux Foundation
 
Debugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB TricksDebugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB Tricksdutor
 
LAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLinaro
 
Advanced Debugging with GDB
Advanced Debugging with GDBAdvanced Debugging with GDB
Advanced Debugging with GDBDavid Khosid
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDBLinaro
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...ECAM Brussels Engineering School
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsXiaozhe Wang
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingAnil Kumar Pugalia
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 

En vedette (15)

Bridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingBridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracing
 
Exploring SoC Peripherals with Eclipse C/C++ IDE
Exploring SoC Peripherals with Eclipse C/C++ IDEExploring SoC Peripherals with Eclipse C/C++ IDE
Exploring SoC Peripherals with Eclipse C/C++ IDE
 
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
 
LTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space TracingLTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space Tracing
 
From printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debuggingFrom printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debugging
 
Debugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB TricksDebugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB Tricks
 
LAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel Awareness
 
Advanced Debugging with GDB
Advanced Debugging with GDBAdvanced Debugging with GDB
Advanced Debugging with GDB
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDB
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
GDB Rocks!
GDB Rocks!GDB Rocks!
GDB Rocks!
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 

Similaire à Advanced Tracing features using GDB and LTTng

LTTng (EclipseCon 2010)
LTTng (EclipseCon 2010)LTTng (EclipseCon 2010)
LTTng (EclipseCon 2010)Fchouinard
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Puppet
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoTIan Skerrett
 
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?Julien Vermillard
 
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...InfluxData
 
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...Guglielmo Iozzia
 
SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...
SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...
SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...South Tyrol Free Software Conference
 
Loriot Pro V5 Presentation V2 En
Loriot Pro V5 Presentation V2 EnLoriot Pro V5 Presentation V2 En
Loriot Pro V5 Presentation V2 EnLUTEUS
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric OverviewMichelle Holley
 
2019 05-28 SRE Consul Criteo Meetup
2019 05-28 SRE Consul Criteo Meetup2019 05-28 SRE Consul Criteo Meetup
2019 05-28 SRE Consul Criteo MeetupPierre Souchay
 
Getting Started: Intro to Telegraf - July 2021
Getting Started: Intro to Telegraf - July 2021Getting Started: Intro to Telegraf - July 2021
Getting Started: Intro to Telegraf - July 2021InfluxData
 
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)Codit
 
CNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyCNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyHarish
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...GetInData
 
Java in the Air: A Case Study for Java-based Environment Monitoring Stations
Java in the Air: A Case Study for Java-based Environment Monitoring StationsJava in the Air: A Case Study for Java-based Environment Monitoring Stations
Java in the Air: A Case Study for Java-based Environment Monitoring StationsEurotech
 
MACHBASE_NEO
MACHBASE_NEOMACHBASE_NEO
MACHBASE_NEOMACHBASE
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Jakub Botwicz
 
Webinar september 2013
Webinar september 2013Webinar september 2013
Webinar september 2013Marc Gille
 

Similaire à Advanced Tracing features using GDB and LTTng (20)

LTTng (EclipseCon 2010)
LTTng (EclipseCon 2010)LTTng (EclipseCon 2010)
LTTng (EclipseCon 2010)
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoT
 
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
 
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
 
AMIT SRIVASTAVA
AMIT SRIVASTAVAAMIT SRIVASTAVA
AMIT SRIVASTAVA
 
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
 
SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...
SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...
SFScon22 - Sara Tumiati - Goffice 2.0 - Open-Source Microservices for the Sou...
 
Loriot Pro V5 Presentation V2 En
Loriot Pro V5 Presentation V2 EnLoriot Pro V5 Presentation V2 En
Loriot Pro V5 Presentation V2 En
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
2019 05-28 SRE Consul Criteo Meetup
2019 05-28 SRE Consul Criteo Meetup2019 05-28 SRE Consul Criteo Meetup
2019 05-28 SRE Consul Criteo Meetup
 
Getting Started: Intro to Telegraf - July 2021
Getting Started: Intro to Telegraf - July 2021Getting Started: Intro to Telegraf - July 2021
Getting Started: Intro to Telegraf - July 2021
 
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
 
CNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyCNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to Envoy
 
Smart net
Smart netSmart net
Smart net
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
 
Java in the Air: A Case Study for Java-based Environment Monitoring Stations
Java in the Air: A Case Study for Java-based Environment Monitoring StationsJava in the Air: A Case Study for Java-based Environment Monitoring Stations
Java in the Air: A Case Study for Java-based Environment Monitoring Stations
 
MACHBASE_NEO
MACHBASE_NEOMACHBASE_NEO
MACHBASE_NEO
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
 
Webinar september 2013
Webinar september 2013Webinar september 2013
Webinar september 2013
 

Dernier

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...Orbitshub
 
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 businesspanagenda
 
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 Takeoffsammart93
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
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 2024Victor Rentea
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
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, Adobeapidays
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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 educationjfdjdjcjdnsjd
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 

Dernier (20)

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...
 
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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Advanced Tracing features using GDB and LTTng

  • 1. Advanced Tracing Features using GDB and LTTng GCC Summit 2010 2010-10-26 francois.chouinard@ericsson.com marc.khouzam@ericsson.com
  • 2. © Ericsson | GCC Summit 2010 › What is Tracing? › The Linux Tracing Toolkit next generation (LTTng) › User-space Tracer (UST) › Eclipse Tracing and Monitoring Framework – LTTng Eclipse Integration – Perspective and Views – Upcoming Features › Integration with GDB Tracepoints › Getting Eclipse to work for you in under a minute Summary
  • 3. © Ericsson | GCC Summit 2010 What is Tracing? › Technique used to collect info to debug/monitor a system › Often used when debuggers are too intrusive – Real-time system – Live system – Race condition › Also used for performance tuning › Like logging but records events that: – happen much more frequently (gigabytes of data collected) – can be at a much lower level (system calls, scheduling, interrupts) › Requires efficient visualization tool to make sense of the vast amount of data collected
  • 4. © Ericsson | GCC Summit 2010 Interest in Tracing › The interest in tracing is growing tremendously. › Involvement from such companies : – Google – QNX – CodeSourcery – FreeScale – MentorGraphics – Texas Instrument – Red Hat – WindRiver – Ericsson – etc...
  • 5. © Ericsson | GCC Summit 2010 Linux Tracing Toolkit › Open-source project (http://www.lltng.org) › Aims at producing a highly efficient full system tracing solution › Composed of several components – Kernel tracing – User-space tracing – Trace viewer – Trace streaming › Partially already included in the Linux Kernel
  • 6. © Ericsson | GCC Summit 2010 Linux Tracing Toolkit › Highly optimized static tracepoints › Highly compact binary trace format › Efficient probes which do not use traps or system calls › Almost zero performance impact with instrumentation points disabled › Active instrumentation points have low performance impact › Zero copy from event generation to disk write › ...
  • 7. © Ericsson | GCC Summit 2010 User-Space Tracer (UST) › Static tracepoints for user-space › Port of the LTTng kernel tracer to user-space › Like LTTng performance is the main goal – Tracing does not require system calls or traps › Tracepoints may be added in any user-space code – Multi-threaded applications – signal handlers – libraries › Programs must be compiled with libust (-lust)
  • 8. © Ericsson | GCC Summit 2010 User-Space Tracer (UST) › Example of Marker in servers/slapd/search.c › Command: ldapsearch -b “dc=rlnx,dc=com” › Marker output: { “DN” = “dc=rlnx,dc=com” } › Can be controlled and used by GDB for static tracing
  • 9. © Ericsson | GCC Summit 2010 Trace visualization › Originally, making use of LTTng with LTTv › Integration of many different tools in Eclipse makes Eclipse a better fit › Focus is now on the new LTTng integration in Eclipse
  • 10. © Ericsson | GCC Summit 2010 TargetHost Eclipse Shell cmd LTTng RSE/TCF TMF C/C++ App Java App Whatever Kernel Space TCF Agent lttd lttctl Patched Kernel libust libust libust libustd libustlibust libustctl Local FS C adapterC adapter LTTng Eclipse Integration
  • 11. © Ericsson | GCC Summit 2010 TMF ControlFlow View Resources View Statistics View Kernel State System Events View Histogram View Trace Parsing Lib Experiment/ Traceset Trace nTrace 1 Project View Some other Analysis Tool Some other View JNI LTTng Eclipse Architecture
  • 12. © Ericsson | GCC Summit 2010 LTTng Perspective
  • 13. © Ericsson | GCC Summit 2010 LTTng – Project View › Projects are used to group traces that you wish to correlate › Experiments are specific correlations between selected trace files › Traces are all trace files currently included in the project
  • 14. © Ericsson | GCC Summit 2010 LTTng – Events View › 'Raw' merged events in chronological order › Synchronized on timestamp with other views › Upcoming feature: – Event filtering on time range, event type, field value (e.g. pid), … – Individual trace tabs
  • 15. © Ericsson | GCC Summit 2010 › Event distribution over full traceset and selected window › Controls to modify current event and event window › Synchronized on current window and current event › Upcoming feature: – Zooming the selected window using the mouse LTTng – Histogram View
  • 16. © Ericsson | GCC Summit 2010 › Displays processes states (color-coded) over time › State 'tooltips‘ through hovering › Zooming and filtering › Quick navigation between processes, states › Upcoming features : – Color legend – Configurable color scheme LTTng – Control Flow View
  • 17. © Ericsson | GCC Summit 2010 › Displays system resource states (color-coded) over time › State 'tooltips' › Zooming and filtering › Quick navigation between resources, states › Upcoming features : – Color legend – Configurable color scheme LTTng – Resources View
  • 18. © Ericsson | GCC Summit 2010 › Displays basic CPU usage statistics › Upcoming feature: – Make the view generic (decoupled from the kernel events structure) LTTng – Statistics View
  • 19. © Ericsson | GCC Summit 2010 › General – Tracing tool control – Trace streaming – Correlation of heterogeneous traces – User Space Tracing – Source lookup – Performance tuning › Analyses – Time correction (traces synchronization) › Multi-core, multi-level, multi-node – Timing dependencies (processes interactions e.g. startup time) – Pattern matching (security e.g. intrusion detection) LTTng – Upcoming Features
  • 20. © Ericsson | GCC Summit 2010 Integration with GDB Tracepoints › GDB Tracepoints are currently visualized through the debugger views › Current work to use TMF/LTTng views with GDB Tracepoints – Histogram view – Events view › Other discussed visualizations such as : – Variable variation over time
  • 21. © Ericsson | GCC Summit 2010 LTTng Eclipse Project (http://www.eclipse.org/linuxtools/projectPages/lttng) LTTng Eclipse Wiki (http://wiki.eclipse.org/Linux_Tools_Project/LTTng) Linux Tools (http://www.eclipse.org/linuxtools/index.php) Update Site (http://download.eclipse.org/technology/linuxtools/update) LTTng Project (http://lttng.org) Tracing Wiki (http://lttng.org/tracingwiki/index.php/TracingBook) LTTng – Pointers
  • 22. © Ericsson | GCC Summit 2010 Getting Eclipse to work for you in under a minute 1.Downloading Eclipse Linux Package: • http://eclipse.org/downloads • Choose: “Eclipse IDE for C/C++ Linux Developers” 2.Extract it: tar xf <packageFile> 3.Run it: cd <packageDir> ; ./eclipse 4.Create a (dummy) C/C++ project: “Hello World” is fine 5.Start debugging... GDB... GCC... etc...
  • 23. © Ericsson | GCC Summit 2010 Questions?
  • 24. © Ericsson | GCC Summit 2010