SlideShare a Scribd company logo
1 of 20
Download to read offline
What do these nerds have in common?
Linus Torvalds does
not use debuggers.
Thanks, Daniel Lemire! https://lemire.me/blog/2016/06/21/i-do-not-use-a-debugger/
Robert C. Martin
thinks that
debuggers are a
wasteful timesink.
Guido van Rossum uses
printf for 90% of his
debugging.
They all dislike debugging.
On the Dichotomy of Debugging
Behavior Among Programmers
Moritz Beller, Niels Spruit, Andy Zaidman Diomidis Spinellis
What do we know about debugging?
“We have anecdotes from people using our debugger here and there or
looking over their shoulders, but nothing substantial.”
Eclipse Debug Lead
“
What do we know about debugging?
Research Questions
RQ1 What do developers know about debugging and how do
they reflect on it?
RQ2 How do developers debug in their IDEs?
RQ3 How do individual debugger users and experts interpret our
findings from RQ1 and RQ2?
Study Design
176 survey respondents, ⅓
Eclipse and ⅓ IntelliJ. 84% Java
programmers.
458 WatchDog participants, ⅓ Eclipse and ⅓ IntelliJ.
100% Java programmers. Over 2 months, recorded 10.3
IDE work years. Heterogeneous mix of private,
open-source, and commercial projects.
7 interviews with 9 experts in the
field including developers of IDE
debuggers.
RQ1 What do developers know about
debugging?
RQ1 What do developers know about
debugging?
of developers use the IDE debugger.
Only 8.5% explicitly do not.81%
of developers examine log files and print statements.
72%
Testing is integral part of the debugging process.
Experience has no impact on self-reported debugging knowledge.
RQ1.13 “Printf debugging is still the best
invention in debugging.”
People saying that printfs are better never learned how to use a
debugger.“
100% Agree.
“
printf is travelling by foot, a GUI debugger is travelling [by] plane. You can go to more
places by foot, but you can only go that far.“
RQ1.13 “Printf debugging is still the best
invention in debugging.”
RQ2 How do developers debug in their
IDEs?
Measured with 2.0
www.testroots.org
RQ2 How do developers debug in their
IDEs?
In 9% of IDE sessions, developers run a debugger.
On average, debugging consumes < 14% of in-IDE time.
88% of debugging sessions are < 10 minutes.
RQ2 How do developers debug in their
IDEs?
of debugging sessions start after reading (52%) or modifying (19%)
code. Only 0.5% after running a test.71%
Smaller classes are debugged more than larger classes. There is
no correlation between the size of the class and its debugging
duration.
Developers who spend more time executing tests are likely to
debug more. Developers who read or modify tests longer do not
debug less (ρ = -0.08).
ρ =
0.58
ρ =
-0.75
RQ2 How do developers debug in their
IDEs?
Breakpoint type #
Method 4,229
Class prepare 99
4 Others 216
Σ 4,544
RQ2 How do developers debug in their
IDEs?
‘Advanced’ debugging features are seldom used.
Event type #
Add breakpoint 4,544
Remove breakpoint 4,362
Define watch 343
Modify variable value 4
Hit count 0
Step over 19,543
Step into 3,480
Step out 351
5 others 543
Σ 33,170
Consolidation with experts
Finding RQ1 RQ2 RQ3
6. Developers are divided on printf debugging. RQ1 ~ ~
3. Advanced debugging features are seldom used. RQ1 RQ2 ✔
4. Debuggers are difficult to use. RQ1 ✔ ✔
5. There is a lack of knowledge on how to use them. RQ1 ✔ ✔
1. Debugging is a fast-paced act. ✘ RQ2 ✔
2. Debugging and testing are tightly intertwined. RQ1 ✘ ~
What can we do?
As educators, integrate debugging into courses. Teach debugging hands-on,
not only abstractly.
As debugger developers, care about usability first and number of features later.
- Back-in-time debuggers
- Live REPL
- Domain-specific debuggers
- Many small improvements can lead to a big improvement
What did we do?
“Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by
definition, not smart enough to debug it.”
Brian Kernighan
“

More Related Content

Similar to On the Dichotomy of Debugging Behavior Among Programmers

Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developersDUONG Trong Tan
 
Introduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debuggerIntroduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debuggerNaoto Ono
 
How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?Fabio Petrillo
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Vijay Kumbhar
 
Test driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdfTest driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdfBeroza Paul
 
« Training Within Software » using Dojo and Mob Programming by Bernard Notari...
« Training Within Software » using Dojo and Mob Programming by Bernard Notari...« Training Within Software » using Dojo and Mob Programming by Bernard Notari...
« Training Within Software » using Dojo and Mob Programming by Bernard Notari...Institut Lean France
 
Being a professional software tester
Being a professional software testerBeing a professional software tester
Being a professional software testerAnton Keks
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesAron Ahmadia
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
 
Open source software best practices
Open source software best practicesOpen source software best practices
Open source software best practicesparewalabs
 
Test Driven Development with PHP
Test Driven Development with PHPTest Driven Development with PHP
Test Driven Development with PHPRogério Vicente
 
Clean application development (talk)
Clean application development (talk)Clean application development (talk)
Clean application development (talk)Adam Culp
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)Stefan Koopmanschap
 

Similar to On the Dichotomy of Debugging Behavior Among Programmers (20)

Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
Introduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debuggerIntroduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debugger
 
Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Qrs17a.ppt
 
Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Qrs17a.ppt
 
How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy
 
Test driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdfTest driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdf
 
« Training Within Software » using Dojo and Mob Programming by Bernard Notari...
« Training Within Software » using Dojo and Mob Programming by Bernard Notari...« Training Within Software » using Dojo and Mob Programming by Bernard Notari...
« Training Within Software » using Dojo and Mob Programming by Bernard Notari...
 
Being a professional software tester
Being a professional software testerBeing a professional software tester
Being a professional software tester
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
Icpc16.ppt
Icpc16.pptIcpc16.ppt
Icpc16.ppt
 
Icpc16.ppt
Icpc16.pptIcpc16.ppt
Icpc16.ppt
 
Code Retreat
Code RetreatCode Retreat
Code Retreat
 
Open source software best practices
Open source software best practicesOpen source software best practices
Open source software best practices
 
Test Driven Development with PHP
Test Driven Development with PHPTest Driven Development with PHP
Test Driven Development with PHP
 
Clean application development (talk)
Clean application development (talk)Clean application development (talk)
Clean application development (talk)
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)
 
Binding android piece by piece
Binding android piece by pieceBinding android piece by piece
Binding android piece by piece
 

More from Moritz Beller

Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?Moritz Beller
 
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...Moritz Beller
 
The Last Line Effect
The Last Line EffectThe Last Line Effect
The Last Line EffectMoritz Beller
 
How (Much) Do Developers Test?
How (Much) Do Developers Test?How (Much) Do Developers Test?
How (Much) Do Developers Test?Moritz Beller
 
How (Much) Do Developers Test?
How (Much) Do Developers Test?How (Much) Do Developers Test?
How (Much) Do Developers Test?Moritz Beller
 
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?Moritz Beller
 

More from Moritz Beller (6)

Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open-Source Projects: Which Problems Do They Fix?
 
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
 
The Last Line Effect
The Last Line EffectThe Last Line Effect
The Last Line Effect
 
How (Much) Do Developers Test?
How (Much) Do Developers Test?How (Much) Do Developers Test?
How (Much) Do Developers Test?
 
How (Much) Do Developers Test?
How (Much) Do Developers Test?How (Much) Do Developers Test?
How (Much) Do Developers Test?
 
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
 

Recently uploaded

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 

Recently uploaded (20)

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 

On the Dichotomy of Debugging Behavior Among Programmers

  • 1. What do these nerds have in common? Linus Torvalds does not use debuggers. Thanks, Daniel Lemire! https://lemire.me/blog/2016/06/21/i-do-not-use-a-debugger/ Robert C. Martin thinks that debuggers are a wasteful timesink. Guido van Rossum uses printf for 90% of his debugging. They all dislike debugging.
  • 2. On the Dichotomy of Debugging Behavior Among Programmers Moritz Beller, Niels Spruit, Andy Zaidman Diomidis Spinellis
  • 3. What do we know about debugging?
  • 4. “We have anecdotes from people using our debugger here and there or looking over their shoulders, but nothing substantial.” Eclipse Debug Lead “ What do we know about debugging?
  • 5. Research Questions RQ1 What do developers know about debugging and how do they reflect on it? RQ2 How do developers debug in their IDEs? RQ3 How do individual debugger users and experts interpret our findings from RQ1 and RQ2?
  • 6. Study Design 176 survey respondents, ⅓ Eclipse and ⅓ IntelliJ. 84% Java programmers. 458 WatchDog participants, ⅓ Eclipse and ⅓ IntelliJ. 100% Java programmers. Over 2 months, recorded 10.3 IDE work years. Heterogeneous mix of private, open-source, and commercial projects. 7 interviews with 9 experts in the field including developers of IDE debuggers.
  • 7. RQ1 What do developers know about debugging?
  • 8. RQ1 What do developers know about debugging? of developers use the IDE debugger. Only 8.5% explicitly do not.81% of developers examine log files and print statements. 72% Testing is integral part of the debugging process. Experience has no impact on self-reported debugging knowledge.
  • 9. RQ1.13 “Printf debugging is still the best invention in debugging.” People saying that printfs are better never learned how to use a debugger.“ 100% Agree. “ printf is travelling by foot, a GUI debugger is travelling [by] plane. You can go to more places by foot, but you can only go that far.“
  • 10. RQ1.13 “Printf debugging is still the best invention in debugging.”
  • 11. RQ2 How do developers debug in their IDEs? Measured with 2.0 www.testroots.org
  • 12.
  • 13. RQ2 How do developers debug in their IDEs? In 9% of IDE sessions, developers run a debugger. On average, debugging consumes < 14% of in-IDE time. 88% of debugging sessions are < 10 minutes.
  • 14. RQ2 How do developers debug in their IDEs? of debugging sessions start after reading (52%) or modifying (19%) code. Only 0.5% after running a test.71% Smaller classes are debugged more than larger classes. There is no correlation between the size of the class and its debugging duration. Developers who spend more time executing tests are likely to debug more. Developers who read or modify tests longer do not debug less (ρ = -0.08). ρ = 0.58 ρ = -0.75
  • 15. RQ2 How do developers debug in their IDEs? Breakpoint type # Method 4,229 Class prepare 99 4 Others 216 Σ 4,544
  • 16. RQ2 How do developers debug in their IDEs? ‘Advanced’ debugging features are seldom used. Event type # Add breakpoint 4,544 Remove breakpoint 4,362 Define watch 343 Modify variable value 4 Hit count 0 Step over 19,543 Step into 3,480 Step out 351 5 others 543 Σ 33,170
  • 17. Consolidation with experts Finding RQ1 RQ2 RQ3 6. Developers are divided on printf debugging. RQ1 ~ ~ 3. Advanced debugging features are seldom used. RQ1 RQ2 ✔ 4. Debuggers are difficult to use. RQ1 ✔ ✔ 5. There is a lack of knowledge on how to use them. RQ1 ✔ ✔ 1. Debugging is a fast-paced act. ✘ RQ2 ✔ 2. Debugging and testing are tightly intertwined. RQ1 ✘ ~
  • 18. What can we do? As educators, integrate debugging into courses. Teach debugging hands-on, not only abstractly. As debugger developers, care about usability first and number of features later. - Back-in-time debuggers - Live REPL - Domain-specific debuggers - Many small improvements can lead to a big improvement
  • 19. What did we do?
  • 20. “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” Brian Kernighan “