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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
DotNetRu
December 06, 2019
Programming
0
50
Павел Колмаков «Leakvidator: WinDbg or not to WinDbg»
DotNetRu
December 06, 2019
Tweet
Share
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
340
Филипп Бочаров «Распределенная трассировка Jaeger в .NET»
dotnetru
0
370
Андрей Сергеев "Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок."
dotnetru
0
170
Павел Московой "Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений."
dotnetru
0
160
Сергей Огородников "Практика построения сервисов на основе ViennaNET"
dotnetru
0
170
Other Decks in Programming
See All in Programming
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
130
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1.1k
CSC307 Lecture 15
javiergs
PRO
0
260
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.3k
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
470
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
490
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
410
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
510
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.2k
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
190
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
300
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.4k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
The Language of Interfaces
destraynor
162
26k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
140
Side Projects
sachag
455
43k
Deep Space Network (abreviated)
tonyrice
0
93
Agile that works and the tools we love
rasmusluckow
331
21k
Technical Leadership for Architectural Decision Making
baasie
3
300
Optimizing for Happiness
mojombo
378
71k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
180
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
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!