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
43
Павел Колмаков «Leakvidator: WinDbg or not to WinDbg»
DotNetRu
December 06, 2019
Tweet
Share
More Decks by DotNetRu
See All by DotNetRu
Кирилл Лихтарович «Версионирование и кодогенерация в REST API»
dotnetru
0
220
Дмитрий Бабушкин «Мержилка .sln: быстро и надёжно, без UI и юнит-тестов»
dotnetru
0
140
Артём Микулич «Как интегрироваться с (не-)надёжным third-party API при помощи Polly»
dotnetru
0
140
Иван Патудин «gRPC и его реализация в .NET Core»
dotnetru
0
500
Дмитрий Павлов «Greenplum: Быстро, параллельно, консистентно»
dotnetru
0
270
Филипп Бочаров «Распределенная трассировка Jaeger в .NET»
dotnetru
0
300
Андрей Сергеев "Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок."
dotnetru
0
140
Павел Московой "Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений."
dotnetru
0
110
Сергей Огородников "Практика построения сервисов на основе ViennaNET"
dotnetru
0
130
Other Decks in Programming
See All in Programming
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
1.1k
WebAssembly Unleashed: Powering Server-Side Applications
chrisft25
0
130
C++でシェーダを書く
fadis
6
4.1k
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
6
2.1k
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
3
1.2k
React への依存を最小にするフロントエンド設計
takonda
19
5.1k
Micro Frontends Unmasked Opportunities, Challenges, Alternatives
manfredsteyer
PRO
0
120
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
Functional Event Sourcing using Sekiban
tomohisa
0
110
最新TCAキャッチアップ
0si43
0
210
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
CSC509 Lecture 13
javiergs
PRO
0
110
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
180
21k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
110
49k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Ruby is Unlike a Banana
tanoku
97
11k
Side Projects
sachag
452
42k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Done Done
chrislema
181
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Designing for Performance
lara
604
68k
Building Your Own Lightsaber
phodgson
103
6.1k
Fireside Chat
paigeccino
34
3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
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!