BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Pentabarf//Schedule 0.3//EN CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALDESC;VALUE=TEXT:Debugging Tools devroom X-WR-CALNAME;VALUE=TEXT:Debugging Tools devroom X-WR-TIMEZONE;VALUE=TEXT:Europe/Brussels BEGIN:VEVENT METHOD:PUBLISH UID:10143@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T100500 DTEND:20200202T103000 SUMMARY:Low-end platform profiling with HawkTracer profiler DESCRIPTION:
HawkTracer is low-overhead instrumentation-based profiler built at Amazon Video for platforms with limited capabilities. It's written in C but can be used almost with any other language (we've successfully used it with JavaScript, LUA, Python and Rust). It's highly extensible (at compile time) and portable so it can be run on almost any embedded device. In this talk I'll introduce the architecture of the profiler, present it's advantages and limitations, show how can you instrument the code and demonstrate the profiler in action by running it with an example cross-language (Rust, C++ and Python) project.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_hawktrace/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Marcin Kolny":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:9322@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T103500 DTEND:20200202T110500 SUMMARY:GDB pipelines -- convenience iteration over inferior data structures DESCRIPTION:We introduce a GDB plugin for working with large data structures in the inferior.
This plugin brings some of the flexibility of Unix pipelines to the GDB command prompt, providing the ability to conveniently run some action on every element in a data structure that matches certain criteria.
One big aim of this plugin is to make it easy and convenient for a user to write their own sub-commands to iterate over the data structures used in their own program.
This is intended for anyone who has found difficulty inspecting large data structures from inside GDB.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_gdb_pipelines/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Matthew Malcomson":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10515@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T111000 DTEND:20200202T114000 SUMMARY:The GDB Text User Interface DESCRIPTION:GDB has had a curses-based interface for many years. Come see what new features are available and how it can improve your debugging experience.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_gdb_tui/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Tom Tromey":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10404@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T114500 DTEND:20200202T122500 SUMMARY:Memcheck Reloaded DESCRIPTION:Valgrind's Memcheck tool reports various kinds of errors. One of the most important are those where an if-condition or a memory address uses undefined data. Detecting that reliably on optimized code is challenging, and recent compiler development has made the problem worse.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_memcheck_reloaded/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Julian Seward":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:9730@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T123000 DTEND:20200202T130000 SUMMARY:Postmodern strace DESCRIPTION:strace is a diagnostic, debugging and instructional utility for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. In this talk the maintainer of strace will describe new features implemented since FOSDEM 2018.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_strace_modern/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Dmitry Levin":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:9721@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T130500 DTEND:20200202T133500 SUMMARY:strace: fight for performance DESCRIPTION:The talk gives an overview of various optimisations implemented in strace over the past several years. While most of them are quite trivial (like caching of frequently-used data or avoiding syscalls whenever possible), some of them are a bit more tricky (like usage of seccomp BPF programs for avoiding excessive ptrace stops) and/or target more specific use cases (like the infamous thread queueing patch[1], which was carried as a RHEL downstream patch for almost 10 years).
[1] https://gitlab.com/strace/strace/commit/e0f0071b36215de8a592bf41ec007a794b550d45
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_strace_perfotmance/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Eugene Syromyatnikov":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10456@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T134000 DTEND:20200202T141000 SUMMARY:strace --seccomp-bpf: a look under the hood DESCRIPTION:strace is known to add significant overhead to any application it traces.Even when users are interested in a handful of syscalls, strace will bydefault intercept all syscalls made by the observed processes, involvingseveral context switches per syscall. Since strace v5.3, the--seccomp-bpf
option allows reducing this overhead, by stopping observedprocesses only at syscalls of interest. This option relies on seccomp-bpfand inherits a few of its limitations.
In this talk, we will describe the default behavior of ptrace and strace,to understand the problem --seccomp-bpf
addresses. We will then detailthe inner workings of the new option, as seen from ptrace (seccomp-stops)and bpf (syscall matching algorithms). Finally, we'll discuss limitationsof the new option and avenues for improvement.
By allowing to safely load programs from user space and to execute them in the kernel, eBPF (extended Berkeley Packet Filter) has brought new possibilities to the Linux kernel, in particular in terms of tracing and network processing.
But when a program fails to load, or when it does not return the expected values, what tools do we have to examine, inspect and debug eBPF objects? This talk focuses on the different tools and mechanisms available to help eBPF developers debug their programs, at the different stages of the workflow. From bpftool to test runs, let's find the best way to track bugs!
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_bpf/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Quentin Monnet":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10393@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T150000 DTEND:20200202T151500 SUMMARY:Support for mini-debuginfo in LLDB DESCRIPTION:The "official" mini-debuginfo man-page describes the topic best:
Some systems ship pre-built executables and libraries that have aspecial
.gnu_debugdata
section. This feature is called MiniDebugInfo.This section holds an LZMA-compressed object and is used to supply extrasymbols for backtraces.The intent of this section is to provide extra minimal debugging informationfor use in simple backtraces. It is not intended to be a replacement forfull separate debugging information (see Separate Debug Files).
In this talk I'll explain what it took to interpret support for mini-debuginfoin LLDB, how we've tested it, and what to think about when implementing thissupport (e.g. merging .symtab
and .gnu_debugdata
sections).
Debugging data is a necessary evil. It is necessary for running debuggers in situ, some tracing tools, or for coredump analysis. It is evil because it is big - potentially many times the size of the binaries. Therefore, software distributions have conflicting needs to generate & keep this data but not burden everyone with its storage.
We will review some degrees of freedom for debugging data distribution, across compiled languages and OS distributions, identifying some of the best practices. We will identify the remaining shortcomings that necessitate exploring yet another way of making debuginfo data available needed.
We will present the elfutils debuginfo-server, where a web service offers a lightweight, build-id-indexed lookup of debuginfo-related data on demand. This service is designed to run on a nearby host, private or shared within teams, or even by OS distributions. Clients built into various debugging type tools will be demonstrated.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_debuginfod/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mark Wielaard":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Frank Ch. Eigler":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10354@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200202T160500 DTEND:20200202T163500 SUMMARY:Debugging apps running in Kubernetes DESCRIPTION:New tools are coming out to make it possible to add breakpoints and debug running code in a Kubernetes Pod. This talk will present an overview of some of these tools. We'll cover tools that make it easy to update the code that's running in a Pod (Squash/Ksync/Telepresence). And we'll also cover how to connect your IDE to the code and set breakpoints.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Debugging Tools URL:https:/fosdem.org/2020/schedule/2020/schedule/event/debugging_kubernetes/ LOCATION:K.4.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Jeff Knurek":invalid:nomail END:VEVENT END:VCALENDAR