Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Productive Debugging. Because time is money
Search
Adora Nwodo
October 11, 2019
Programming
610
3
Share
Productive Debugging. Because time is money
Adora Nwodo
October 11, 2019
More Decks by Adora Nwodo
See All by Adora Nwodo
Harnessing the Power of AI in Open-Source Cloud Engineering
adoranwodo
2
330
Getting Started With Data Structures
adoranwodo
1
480
StereoKit: The Open Source SDK for VR/MR
adoranwodo
0
200
Accessibility in the context of Mixed Reality
adoranwodo
0
96
Skills to Excel in Cloud Engineering
adoranwodo
0
460
The Opportunities In The Decade Of Mixed Realities
adoranwodo
0
120
7 Habits of Highly Effective Engineering Teams
adoranwodo
0
220
Designing secure cloud applications
adoranwodo
0
230
Building a sustainable personal brand
adoranwodo
0
170
Other Decks in Programming
See All in Programming
AI時代になぜ書くのか
mutsumix
0
470
1人1案件のプロダクトエンジニア時代に、"プロセス監督"としてチャレンジしたこと
non0113
0
340
自動レビューエンジンの実装と運用 ~レビューのない世界へ~
kurukuru1999
2
280
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
13
6.4k
RTSPクライアントを自作してみた話
simotin13
0
290
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.1k
iOS26時代の新規アプリ開発
yuukiw00w
0
210
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
400
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
640
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
400
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
290
TSKaigi 2026 TypeScriptバックエンドのオブザーバビリティ戦略 — Datadog × NestJSの実践
taiseiyamamotoan
1
200
Featured
See All Featured
Visualization
eitanlees
152
17k
My Coaching Mixtape
mlcsv
0
130
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
240
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
710
Large-scale JavaScript Application Architecture
addyosmani
515
110k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
74k
GitHub's CSS Performance
jonrohan
1033
470k
The Curse of the Amulet
leimatthew05
1
12k
Six Lessons from altMBA
skipperchong
29
4.3k
Transcript
Productive Debugging. Because time is money.
2 @THEADORANWODO
3 @THEADORANWODO
HI, I’M ADORA! Software Engineer, Microsoft Dev Blog, YouTube @adorahack
Co-Organizer Android Ngr, GDG Ajah, Unstack @theadoranwodo 4
STORYTIME 5 The first computer bug was actually a moth
@THEADORANWODO
6
What is a debugger ? 7 @THEADORANWODO
Snapshot Debugger 8 Visual Studio Code Visual Studio Xdebug WinDbg
LLDB DBG @THEADORANWODO Debugger Examples PDB
WAYS TO DEBUG 9
LIVE DEBUGGING Step through code, set watches & breakpoints 10
@THEADORANWODO
@THEADORANWODO 11
JUST-IN-TIME DEBUGGING VS debugger launches when an app running outside
of it crashes 12 @THEADORANWODO
13 @THEADORANWODO
CRASH DEBUGGING Blue screen of death 14 @THEADORANWODO
15 @THEADORANWODO
CONSOLE DEBUGGING console.log(“hereeee”) console.log(“here again”) console.log(“here for real this time”)
16 @THEADORANWODO
17 @THEADORANWODO
REMOTE DEBUGGING Remote debug Azure app service, ASP.NET, C# or
C++ 18 @THEADORANWODO DO. NOT. TRY. THIS. IN. PRODUCTION.
19 @THEADORANWODO
TIME TRAVEL DEBUGGING Record program execution and replay later 20
@THEADORANWODO
21 @THEADORANWODO
IMPORTANT THINGS TO KNOW 22 @THEADORANWODO
BREAKPOINTS 23 Interrupt function execution either by explicitly setting it
or when a function occurs @THEADORANWODO
SYMBOLS 24 They are the record of how the compiler
turned source code into machine code @THEADORANWODO
SOURCE LINKING 25 It’s not me, it’s the library I’m
using @THEADORANWODO
PDB FILES 26 The .NET program database @THEADORANWODO
MANAGING STATE 27 Inspect state & manipulate it. Variable windows:
Autos, locals, watches Execution state: Call stack, thread & modules Registers, Disassembly, memory Interactive Windows Object IDs @THEADORANWODO
THE VS DEBUGGER 28 @THEADORANWODO
DEBUGGING TIPS TO HELP INCREASE PRODUCTIVITY 29 @THEADORANWODO
WATCH WINDOW SEARCH 30 @THEADORANWODO Image from Microsoft Dev Blog
31 @THEADORANWODO Image from Microsoft Dev Blog THE DEBUGGER DISPLAY
ATTRIBUTE new Book(){ id = 1, title = “Things fall apart”, author = “Chinua Achebe”, createdAt = “2019-10-10 00:00:00”, updatedAt = “2019-10-10 00:00:00” } This Book Object is cute but I want just “Chinua Achebe”
32 @THEADORANWODO Image from Microsoft Dev Blog THE DEBUGGER DISPLAY
ATTRIBUTE
33 @THEADORANWODO Images from Microsoft Dev Blog THE DEBUGGER DISPLAY
ATTRIBUTE
34 @THEADORANWODO Images from Microsoft Dev Blog WRITE EXPRESSIONS IN
THE DEBUGGER DISPLAY
35 @THEADORANWODO Images from Microsoft Dev Blog BREAK WHEN DATA
CHANGES
36 @THEADORANWODO Images from Microsoft Dev Blog HOW DO YOU
LOG DATA WHEN DEBUGGING? Tracepoints are console logs that studied abroad
37 @THEADORANWODO Images from Microsoft Dev Blog HOW DO YOU
LOG DATA WHEN DEBUGGING? Tracepoints are console logs that studied abroad
38 @THEADORANWODO Images from Microsoft Dev Blog EXPLICITLY WRITING TO
THE CONSOLE
39 @THEADORANWODO Images from Microsoft Dev Blog USING TRACEPOINTS
40 @THEADORANWODO Images from Microsoft Dev Blog SET CONDITIONS IN
TRACEPOINTS
41 aka.ms/watchwindowsearch aka.ms/debuggerdisplay aka.ms/managedatabreakpoints @THEADORANWODO
42 @THEADORANWODO
THANK YOU! 43 @THEADORANWODO