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
DotNetRu
December 06, 2019
Programming
0
49
Павел Колмаков «Leakvidator: WinDbg or not to WinDbg»
DotNetRu
December 06, 2019
Tweet
Share
More Decks by DotNetRu
See All by DotNetRu
Кирилл Лихтарович «Версионирование и кодогенерация в REST API»
dotnetru
0
250
Дмитрий Бабушкин «Мержилка .sln: быстро и надёжно, без UI и юнит-тестов»
dotnetru
0
170
Артём Микулич «Как интегрироваться с (не-)надёжным third-party API при помощи Polly»
dotnetru
0
150
Иван Патудин «gRPC и его реализация в .NET Core»
dotnetru
0
550
Дмитрий Павлов «Greenplum: Быстро, параллельно, консистентно»
dotnetru
0
300
Филипп Бочаров «Распределенная трассировка Jaeger в .NET»
dotnetru
0
330
Андрей Сергеев "Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок."
dotnetru
0
150
Павел Московой "Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений."
dotnetru
0
130
Сергей Огородников "Практика построения сервисов на основе ViennaNET"
dotnetru
0
150
Other Decks in Programming
See All in Programming
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.5k
KotlinConf 2025 現地参加の土産話
n_takehata
0
100
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
600
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
230
CSC307 Lecture 17
javiergs
PRO
0
120
C++20 射影変換
faithandbrave
0
490
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
300
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
300
Javaのルールをねじ曲げろ!禁断の操作とその代償から学ぶメタプログラミング入門 / A Guide to Metaprogramming: Lessons from Forbidden Techniques and Their Price
nrslib
3
2k
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
280
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
2
270
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
130
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
RailsConf 2023
tenderlove
30
1.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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!