Do you know what developers do most of their day? coding? Copying snippets from StackOverFlow? You wish! They are debugging!! Every developer should look at Software development as a craftsmanship, and like any craftsman, you probably have a set of tools that you use. From a developer's point of view, the main tools in the box are the IDE and Debugger. A developer who is skilled with these tools is usually more productive, as he/she can write more code and fix more bugs - faster, thus being a better developer. In this session I will discuss tips, tricks and advanced methods for debugging .Net Core more easily and efficiently. We will see a variety of tools and techniques for debugging code that looks undebuggable such as complex Linq queries and concurrent code. Join me and start your path to becoming a .Net debugging Jedi.
2. 222
The “I am too tired to think” type
10 Types Of Human Debuggers(2)
3. 33
The “I am in control” type
3
10 Types Of Human Debuggers(2)
4. 444
• Software engineer, consultant and code Jedi
• Developing Software professionally since 2013
• Software Craftsmanship advocate
• Clean Coder
@MoaidHathot
moaidh@codevalue.net
http://www.moaid.codes
About Me
5. 555
About CodeValue
A leading software company
• ~180 employees: more than 120 technology experts
• Provides high quality software development solutions
• Turn-Key projects
• Software development and consultation
• Tailor-made courses and training
• Fields of expertise include:
• Desktop & LOB applications
• Cloud Computing
• Advanced Mobile & Web Technologies
• User Experience (UX) & User Interface (UI)
• Application Lifecycle Management (ALM) and DevOps
• Embedded & IoT
6. 666
Agenda
• Disturbance in the force
• Breakpoints
• Debugging unowned code
• Debugger attributes
• Debugging multithreaded code
• SysInternals
8. 999
The Definition Of Debugging
“Debugging is the process of finding and resolving bugs or defects that
prevent correct operation of computer software or a system”
Wikipedia.
13. 11414
The Original Bug Report
The terms "bug" and "debugging" are popularly attributed to Admiral
Grace Hopper in the 1940s
• It is a Hardware bug and not a Software bug.
• Wasn’t the first to use the term.
14. 11515
The Original Bug Report
• Thomas Edison wrote the following words in a letter to an associate in 1878:
• “Then difficulties arise — this thing gives out and it is then that "Bugs" — as such little
faults and difficulties are called”
Wikipedia.
18. 11919
Rubber Ducking
Rubber duck debugging or rubber ducking is a method
of debugging code
The name is a reference to a story in the book The
Pragmatic Programmer in which a programmer would
carry around a rubber duck and debug their code by
forcing themselves to explain it, line-by-line, to the
duck
19. 22020
Rubber Ducking
Rubber duck debugging or rubber ducking is a method
of debugging code
The name is a reference to a story in the book The
Pragmatic Programmer in which a programmer would
carry around a rubber duck and debug their code by
forcing themselves to explain it, line-by-line, to the
duck
31. 33232
Symbols
A symbol table is a data structure used by a language translator such as a
compiler or interpreter, where each identifier (a.k.a. symbol) in a program's
source code is associated with information relating to its declaration or
appearance in the source
Wikipedia