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
Павел Колмаков «Leakvidator: WinDbg or not to W...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
DotNetRu
December 06, 2019
Programming
58
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Павел Колмаков «Leakvidator: WinDbg or not to WinDbg»
DotNetRu
December 06, 2019
More Decks by DotNetRu
See All by DotNetRu
Кирилл Лихтарович «Версионирование и кодогенерация в REST API»
dotnetru
0
280
Дмитрий Бабушкин «Мержилка .sln: быстро и надёжно, без UI и юнит-тестов»
dotnetru
0
200
Артём Микулич «Как интегрироваться с (не-)надёжным third-party API при помощи Polly»
dotnetru
0
190
Иван Патудин «gRPC и его реализация в .NET Core»
dotnetru
0
590
Дмитрий Павлов «Greenplum: Быстро, параллельно, консистентно»
dotnetru
0
360
Филипп Бочаров «Распределенная трассировка Jaeger в .NET»
dotnetru
0
380
Андрей Сергеев "Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок."
dotnetru
0
170
Павел Московой "Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений."
dotnetru
0
160
Сергей Огородников "Практика построения сервисов на основе ViennaNET"
dotnetru
0
180
Other Decks in Programming
See All in Programming
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
330
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
660
New "Type" system on PicoRuby
pocke
1
830
OSもどきOS
arkw
0
540
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
110
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.2k
The NotImplementedError Problem in Ruby
koic
1
710
Lessons from Spec-Driven Development
simas
PRO
0
170
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.9k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
580
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
320
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
How to make the Groovebox
asonas
2
2.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
We Have a Design System, Now What?
morganepeng
55
8.2k
A Tale of Four Properties
chriscoyier
163
24k
Claude Code のすすめ
schroneko
67
230k
How to Ace a Technical Interview
jacobian
281
24k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Transcript
Leakvidator: Windbg or not Windbg
Thanks for your attention! Колмаков Павел Software Developer @pkolmakov
3 Windbg это круто?
4 Александр Волик Team Lead
[email protected]
@volikag
5 План • Зачем же смотреть дампы; • Определим наши
инструменты; • Осмотр дампов с прода; • Плюсы минусы инструментов и выводы.
6
7
8 https://www.youtube.com/watch?v=O4kTJW91Ri4
9
10
11
12 12
13
14 Проблемы • С вашим приложением – инфу вашего процесса;
• С сервером, но винят ваше приложение – инфу среды.
15 15
16 16
17
18 Снять дамп • Диспетчер задач 32/64; • Добавить ключ
в реестре; • Использовать ProcDump…; • DotMemory, Windbg...
19
20 WinDbg DebugDiag CLRMD
21
22
23 VisualStudio
24
25
26 26
27 25
28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 Плюсы • Студия может открыть дамп!; • Помогает увидеть
простейшие утечки; • Показывает адреса ссылок; • Можно делать дифы.
41 Минусы • Интерфейс не очень удобен; • Помогает увидеть
лишь примитивные утечки; • Нет никакой информации о процессе в целом; • Дорого для анализа дампов во всех смыслах; • Анализатор студии завис и перестал работать :(
42 Итоги • Для анализа дампов с прода не эффективен;
• Нужно больше инфы об управляемой памяти; • Не увидеть проблемы производительности.
43 DotMemory
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51
5 2
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 Плюсы • Анализ памяти максимально оптимален и приятен; •
Дает значительно больше представление о памяти; • Различные варианты группировок; • Часть проблем находятся на первом же окне.
63 Минусы • Нет виртуальных адресов; • Не всегда показывает
обработчики делегатов; • Всё еще не достаточно информации о процессе в целом; • Только для управляемой памяти.
64 Итоги • Подойдет для оценочного взгляда на кучи; •
Нужно больше инфы об управляемой памяти; • Не увидеть проблемы производительности.
65 DebugDiag
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74
75 75
76 76
77 77
78
79
80 80
81
82 Плюсы • Бесплатный; • Более точная информация; • Достаточно
информативный отчет; • Помогает определить почти все проблемы.
83 Минусы • Требует опыта в понимании внутренностей; • Это
всего лишь отчеты.
84 Итоги • Полезен для анализа дампов с прода.
85 CLRMD
86 86
87 Плюсы • Всё пишешь сам на С#; • Доступ
к управляемой памяти; • Есть возможность использовать команды windbg.
88 Минусы • Нужно разбираться как правильно писать; • Нужно
частично понимать внутренности CLR; • На написание кода требуется много времени; • Код будут читать другие разработчики.
89 Windbg
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
10 5 Плюсы • Бесплатный; • Доступ ко всей памяти
процесса; • Наличие расширений для анализа управляемой памяти; • Возможность писать скрипты. 105
10 6 Минусы • Требует большой уровень экспертизы; • Командно-ориентированный
анализ. 106
10 7 Выводы 107
10 8 Ссылки и материалы 108 WINDBG CLRMD
10 9 Thanks for your attention!