Debugging is a laborious activity in which develop-
ers spend lot of time navigating through code, looking for starting
points, and stepping through statements. Yet, although debuggers
exist for 40 years now, there have been few research studies
to understand this important and laborious activity. Indeed, to
perform such a study, researchers need detailed information
about the different steps of the interactive debugging process. In
this paper, to help research studies on debugging and, thus, help
improving our understanding of how developers debug systems
using debuggers, we present the Swarm Debug Infrastructure
(SDI), with which practitioners and researchers can collect and
share data about developers’ interactive debugging activities.
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
QRS2016 - Towards Understanding Interactive Debugging
1. Towards Understanding
Interactive Debugging
Fabio Petrillo ∗† , Zéphyrin Soh † , Foutse Khomh † , Marcelo Pimenta∗ ,
Carla Freitas∗ , Yann-Gaël Guéhéneuc †
∗ Federal University of Rio Grande do Sul, RS, Brazil
École Polytechnique de Montréal, QC, Canada
IEEE International Conference on Software Quality, Reliability and Security (QRS’2016)
3. Is debugging important?
Developers spend over two-thirds of their time (68%) investigating
code, and the majority of this time is spent debugging
code (33%) [LaToza 2010].
LaToza, T. D., & Myers, B. a. (2010). Developers ask reachability questions. 2010 ACM/IEEE 32nd
International Conference on Software Engineering, 1, 185–194.
3
4. During debugging, a lonely developer
navigates the source code
steps into many statements
traverses dozens of method invocations
gains understanding about the system.
4
5. if interactive debugging is important to create
knowledge about a software project,
why is this human knowledge lost?
5
6. Can we collect and share
debugging session information?
6
11. Swarm Debug Infrastructure (SDI) is an open-
source infrastructure which allows
practitioners and researchers to collect and
share fine-grained data about developers’
interactive debugging activities.
11
24. RQ1: Is there a correlation between the numbers of
invocations or toggled breakpoints and tasks’ elapsed
time?
There is no correlation(ρ = −0.039, 0.093) between
the number of invocations(respectively the number
of breakpointstoggled) during a debugging session
and the spent time on the debugging task
24
25. RQ2: Do developers explore/debug in different ways a
task?
● we observed two distinct debugging navigation patterns:
● fuzzydebugging pattern (several branches)
● straightdebugging pattern
25
35. ● Swam Debugging is an approach uses Swarm Intelligence and Information
Foraging Theory to provide knowledge from interactive debugging session
information
● There is a lot to investigate about interactive debugging phenomena!
● Swarm Debug Infrastructure (SDI) provides an infrastructure to create tools for
context-aware debugging
● Developers follow different debugging patterns
● When developers toggle breakpoints carefully, they complete tasks faster than
developers who toggle breakpoints too quickly
● There is a lot of investigating about interactive debugging phenomena!
Final Remarks
35
36. ● It is free/open source and open research data
○ https://github.com/SwarmDebugging
○ http://server.swarmdebugging.org/
Swarm Debug Infrastructure is Free!
36