Advanced C/C++ Debugging (CDT project) Tracing (Linux Tools PROJECT) Dominique dot toupin at ericsson dot com

Similar documents
Real-time Debugging using GDB Tracepoints and other Eclipse features

serious tools for serious apps

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

LinuxCon Europe Cloud Monitoring and Distribution Bug Reporting with Live Streaming and Snapshots.

Debugging with TotalView

Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer. Dr. Johan Kraft, Percepio AB

Course Development of Programming for General-Purpose Multicore Processors

Red Hat Linux Internals

<Insert Picture Here> Tracing on Linux

TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... TriCore... TriCore Monitor... 1

Debugging Multi-threaded Applications in Windows

Why Threads Are A Bad Idea (for most purposes)

Increasing software development productivity with reversible debugging

<Insert Picture Here> Tracing on Linux Updates

Monitoring, Tracing, Debugging (Under Construction)

DS-5 ARM. Using the Debugger. Version 5.7. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G (ID092311)

Development With ARM DS-5. Mervyn Liu FAE Aug. 2015

STLinux Software development environment

DS-5 ARM. Using the Debugger. Version Copyright ARM. All rights reserved. ARM DUI 0446M (ID120712)

Visualizing gem5 via ARM DS-5 Streamline. Dam Sunwoo ARM R&D December 2012

TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING

Compilers and Tools for Software Stack Optimisation

Dongwoo Kim : Hyeon-jeong Lee s Husband

School of Computing and Information Sciences. Course Title: Computer Programming III Date: April 9, 2014

RTOS Debugger for ecos

Large-scale performance monitoring framework for cloud monitoring. Live Trace Reading and Processing

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux

CSC 2405: Computer Systems II

Embedded Development Tools

Chapter 12. Development Tools for Microcontroller Applications

Introduction to Native Android Development with NDK

An Easier Way for Cross-Platform Data Acquisition Application Development

Real Time Developer Studio. Emmanuel Gaudin

OpenSAF A Standardized HA Solution

DS-5 ARM. Using the Debugger. Version Copyright ARM. All rights reserved. ARM DUI0446P

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

Web Server Architectures

Testing for Security

Building Applications Using Micro Focus COBOL

An Introduction to Multi-threaded Debugging Techniques

A QUICK OVERVIEW OF THE OMNeT++ IDE

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

DMTCP: Bringing Checkpoint-Restart to Python

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen Powergen 3

Developing Parallel Applications with the Eclipse Parallel Tools Platform

Getting Started with CodeXL

Packet Sniffer using Multicore programming. By B.A.Khivsara Assistant Professor Computer Department SNJB s KBJ COE,Chandwad

x86 ISA Modifications to support Virtual Machines

Sequential Performance Analysis with Callgrind and KCachegrind

Easing embedded Linux software development for SBCs

GPU Profiling with AMD CodeXL

Android Development: a System Perspective. Javier Orensanz

Linux A multi-purpose executive support for civil avionics applications?

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd

MCA Standards For Closely Distributed Multicore

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

Complete Integrated Development Platform Copyright Atmel Corporation

Overview of CS 282 & Android

Maintaining Non-Stop Services with Multi Layer Monitoring

Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam

Java Troubleshooting and Performance

Using Power to Improve C Programming Education

HPC Wales Skills Academy Course Catalogue 2015

Middleware and Distributed Systems. Design of Scalable Servers. Martin v. Löwis. Donnerstag, 16. Februar 12

Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem. Dr Rosemary Francis, Ellexus

Realtime Linux Kernel Features

Runtime Verification for Real-Time Automotive Embedded Software

Using System Tracing Tools to Optimize Software Quality and Behavior

Pro ASP.NET 4 CMS. Using the JET 4 Framework. Advanced Techniques for C# Developers. Apress. Alan Harris

Better Trace for Better Software

Hands-on CUDA exercises

Sequential Performance Analysis with Callgrind and KCachegrind

Embedded Systems. 6. Real-Time Operating Systems

Developing applications on Yocto. Lianhao Lu Intel Corporation Feb. 29th, 2012

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

GPU Tools Sandra Wienke

<Insert Picture Here> Tracing on Linux: the Old, the New, and the Ugly

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

Efficient and Large-Scale Infrastructure Monitoring with Tracing

REAL TIME OPERATING SYSTEMS. Lesson-10:

AMD WHITE PAPER GETTING STARTED WITH SEQUENCEL. AMD Embedded Solutions 1

An Introduction to Android. Huang Xuguang Database Lab. Inha University

System Software Integration: An Expansive View. Overview

Introducing the IBM Software Development Kit for PowerLinux

Multi-/Many-core Modeling at Freescale

Cortex-A9 MPCore Software Development

SAMPLE RESUME FORMAT

Data Integration and ETL with Oracle Warehouse Builder: Part 1

Instrumentation Software Profiling

ELEC 377. Operating Systems. Week 1 Class 3

Collaborative GeoGebra

Going Linux on Massive Multicore

Hardware design for ray tracing

Performance analysis using Great Performance Tools and Linux Trace Toolkit next generation

Demonstration: On-Line Visualization and Analysis of Real-Time Systems with TuningFork

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

Transcription:

Advanced C/C++ Debugging (CDT project) Tracing (Linux Tools PROJECT) Dominique dot toupin at ericsson dot com

FULL open source solution Eclipse CDT Eclipse Linux Tools GDB LTTng Linux

Reverse debugging Allows to undo register and memory changes so as to move the execution backwards Uses recording and playback Buttons to control reverse execution Start recording and display execution buttons Ericsson Eclipse Summit 2010

Multi core-process-context http://wiki.eclipse.org/cdt/multicoredebugworkinggroup More execution in parallel in many processes Debugging related processes at the same time Dynamically attach and detach from processes Follow child process created with a fork, exec, Global Breakpoint, many processes can execute the same code, auto attached to the process only when the breakpoint is hit, also usefull for short lived-process Core awareness, threads are running on which cores Ericsson Eclipse Summit 2010 Cores are shown for both threads and processes

Ericsson Eclipse Summit 2010

Special breakpoints Conditional Breakpoint Stop only if the condition is true. C assert condition, break when assertion is false Data Breakpoint or Watchpoint Stop whenever the value of an expression change Don't have to predict where this may happen Can be a complex expression or just a single variable Program event breakpoint Stop when a special event occurs Throwing/catching C++ exception, unhandled exception call to exec, fork, syscal Ericsson Eclipse Summit 2010

Display and editing of complex objects like Lists, Maps, Vectors Complex structures shown in an intuitive way and editable Some programs have a deep interaction with OS resources DSF- GDB can show: process groups, file descriptors, internet-domain sockets, shared memory segments, semaphore, message queues, loaded kernel modules, etc.

Non-STOP Debugging a process by stopping its execution might cause the program to change its behavior drastically, or perhaps fail, even when the code itself is correct. Troubleshooting in the lab Chasing a race condition Debugging problems happening only under heavy load Investigating user interface issues Non-Stop allows to stop and examine one or more thread in the debugger while other threads continue to execute freely Ericsson Eclipse Summit 2010

Dynamic Tracepoints Tracepoint collects user-specified info and continues execution without stopping any thread, essential for live sites Dynamic i.e. inserted with a jump (in process) or a trap Data collection can be conditional to a user specified expression Tracepoint actions: collect state trace data e.g. timestamp, and program data e.g. variables, register evaluate expressions, e.g. modify trace variables step (similar to breakpoint step) and collect data in each step A trace experiment can be stopped after the n'th hit Static tracepoint (LTTng UST) can be stored in the debug tracepoint buffer Debug tracepoint are good when no static tracepoint are available and for small quantity of data Ericsson Eclipse Summit 2010

Dynamic Tracepoints Visualization Intuitive display using debugger views Collected data Line where trace was collected Tracepoint that collected data Ericsson Eclipse Summit 2010

TRacing Need to understand what is going on in a system without causing disturbance? Tracing is for you Compared to logging, tracing typically records lower-level events that occurs much more frequently Tracers are therefore optimized to handle a lot of data while having a small impact on the system Static Tracepoint created by designer before compilation represent wisdom of developers who are most familiar with the code The rest of the world can use static tracepoint to extract a great deal of useful information without having to know the code Ericsson Eclipse Summit 2010

Ericsson LinuxCon Tracing Mini-Summit 2010

LTTng Perspective Ericsson LinuxCon Tracing Mini-Summit 2010

LTTng Histogram, Statistics Ericsson LinuxCon Tracing Mini-Summit 2010

LTTng Control Flow, Resources Ericsson LinuxCon Tracing Mini-Summit 2010

Upcoming Features General Tracing tool control Trace streaming Heterogeneous traces GDB Tracepoints Source lookup Performance tuning Analyses Time correction (traces synchronization) Multi-core, multi-level, multi-node Timing dependencies (between processes) Latency Analysis Pattern matching (security e.g. intrusion detection) Ericsson LinuxCon Tracing Mini-Summit 2010 Other trace format Linux User Space Tracing Text format De-facto standard format Multi-core association, Embedded Linux Forum, Samsung, Ericsson, Mentor Graphic, WindRiver, IBM, Freescale, TI, Nokia-Siemens Network, National Instruments, etc. www.multicore-association.org/workgroup/tiwg.php Common Trace Format Requirement: http://lwn.net/articles/408824/ Common Trace Format Implementation: http://lwn.net/articles/408825/

Analysis Y TMF Architecture View A View B View C Analysis X Request/Event Handler Experiment View D Analysis W TMF External Component Trace 1 Trace 2 External Component Analysis Z Ericsson LinuxCon Tracing Mini-Summit 2010

LTTng TMF Integration ControlFlow View Resources View Statistics View Some other Analysis Tool Kernel State System Histogram View Some other View TMF Experiment/ Traceset Events View Trace Parsing Lib JNI Trace 1 Trace n Project View Ericsson LinuxCon Tracing Mini-Summit 2010

Additional Online Resources Eclipse CDT DSF-GBD lead: marc DOT khouzam AT ericsson DOT com cdt-dev@eclipse.org CDT Multi-core debugging http://wiki.eclipse.org/cdt/designs/multicoredebug, http://wiki.eclipse.org/cdt/multicoredebugworkinggroup, http://wiki.eclipse.org/pinandclone http://gcc.gnu.org/wiki/summit2010 Advanced Tracing Features using GDB and LTTng, Real-time debugging using GDB Tracepoints, GDB Tracepoints: From Prototype to Production http://gcc.gnu.org/wiki/homepage?action=attachfile&do=get&target=2009-gcc-summ Using Eclipse for Reverse, Multi-Process and Non-Stop Debugging with GDB p.65, GDB Tracepoints, Redux p.105, Hybrid multi-architecture debugging with GDB p.137 http://www.gccsummit.org/2008/gcc-2008-proceedings.pdf Non-stop Multi-Threaded Debugging in GDB p.117 Eclipse LTTng plug-in lead: francois DOT chouinard AT ericsson DOT com linuxtools-dev@eclipse.org http://www.eclipse.org/linuxtools/projectpages/lttng http://www.lttng.org, http://lttng.org/content/success-stories Ericsson Eclipse Summit 2010

Advanced C/C++ Debugging (CDT project) Tracing (Linux Tools PROJECT) Dominique dot toupin at ericsson dot com