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
62
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
290
Дмитрий Бабушкин «Мержилка .sln: быстро и надёжно, без UI и юнит-тестов»
dotnetru
0
210
Артём Микулич «Как интегрироваться с (не-)надёжным third-party API при помощи Polly»
dotnetru
0
190
Иван Патудин «gRPC и его реализация в .NET Core»
dotnetru
0
600
Дмитрий Павлов «Greenplum: Быстро, параллельно, консистентно»
dotnetru
0
370
Филипп Бочаров «Распределенная трассировка Jaeger в .NET»
dotnetru
0
390
Андрей Сергеев "Вопросы 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
FDEが実現するAI駆動経営の現在地
gonta
2
290
テーブルをDELETEした
yuzneri
0
150
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
200
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
540
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
330
メールのエイリアス機能を履き違えない
isshinfunada
0
240
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
130
Building a Meta Ray-Ban display app
akkeylab
0
170
仕様駆動開発の消費期限
watany
20
8.7k
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
600
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
700
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.9k
Featured
See All Featured
From π to Pie charts
rasagy
0
300
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Building Adaptive Systems
keathley
44
3.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
HDC tutorial
michielstock
2
790
A Tale of Four Properties
chriscoyier
163
24k
Darren the Foodie - Storyboard
khoart
PRO
3
3.7k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
A designer walks into a library…
pauljervisheath
211
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
470
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
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!