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
CoreCLR
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Siarhei Shchahrykovich
August 23, 2016
Programming
0
100
CoreCLR
https://github.com/shchahrykovich/ms/
Siarhei Shchahrykovich
August 23, 2016
Tweet
Share
More Decks by Siarhei Shchahrykovich
See All by Siarhei Shchahrykovich
Debugging as a process - DotNext 2018 Piter
shchahrykovich
0
91
5 commandments of pdb
shchahrykovich
0
32
ETW for .Net developers - DotNext 2016 Piter
shchahrykovich
0
25
ETW. Tracing done right
shchahrykovich
1
160
WinDbg by examples
shchahrykovich
0
320
Other Decks in Programming
See All in Programming
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Oxlint JS plugins
kazupon
1
920
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
450
AI巻き込み型コードレビューのススメ
nealle
1
210
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
280
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
210
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
Patterns of Patterns
denyspoltorak
0
1.4k
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
Architectural Extensions
denyspoltorak
0
280
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
180
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
53
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
110
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Fireside Chat
paigeccino
41
3.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
61
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Limits of Empathy - UXLibs8
cassininazir
1
210
Paper Plane (Part 1)
katiecoart
PRO
0
4.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Transcript
CoreCLR: Brave new world Сергей Щегрикович 1
Про меня • Щегрикович Сергей •
[email protected]
• @shchegrikovich 2
3
CoreCLR: Brave new world или Каждый может быть CoreCLR хакером
4
Про что я буду рассказывать • Как C# разработчику изучать
CoreCLR • Как дебажить CoreCLR 5
Про что я НЕ буду рассказывать • Зачем Вам это
надо • Как это можно использовать 6
7 Exploring the CoreCLR Inside Silverlight, 2009
git clone https://github.com/dotnet/coreclr 8
И? 9
#0 Читаем исходный код 10
11
Заходит C# разработчик в бар… 12 А где файл проекта?
13
14 13 files
15
16
17
#1 Читаем коммиты 18
19
20
21
Как читать исходники? 22 Julia Evans /*==================================LENGTH=================================== */ FCIMPL1(INT32, COMString::Length,
StringObject* str) { FCALL_CONTRACT; FC_GC_POLL_NOT_NEEDED(); if (str == NULL) FCThrow(kNullReferenceException); FCUnique(0x11); return str->GetStringLength(); } FCIMPLEND
Как читать исходники? 23 /*==================================LENGTH=================================== */ FCIMPL1(INT32, COMString::Length, StringObject* str)
{ FCALL_CONTRACT; FC_GC_POLL_NOT_NEEDED(); if (str == NULL) FCThrow(kNullReferenceException); FCUnique(0x11); return str->GetStringLength(); } FCIMPLEND Julia Evans
Как читать исходники? 24 /*==================================LENGTH=================================== */ FCIMPL1(INT32, COMString::Length, StringObject* str)
{ if (str == NULL) FCThrow(kNullReferenceException); return str->GetStringLength(); } Julia Evans
Документация • Rotor • Book of the Runtime 25
#2 Дебаггинг 26
27
28
29
30
Демо • HelloWorld • MethodImplOptions.InternalCall • Finalizer 31
Как работает дебагер? Debug Port Object Debugger Debuggee (Target)
Как работает дебагер в .Net? .Net app (target) WinDbg (debugger)
sos.dll Debugger RCT Execution Engine mscordaccore.dll
Как дебажить SOS? .Net app (target) WinDbg (debugger) sos.dll Debugger
RCT Execution Engine mscordaccore.dll WinDbg2 (debugger)
Демо • Дебажим дебагер • Недокументированные команды SOS 35
Что еще посмотреть? • https://github.com/dotnet/llilc LLVM based compiler for .NET
Core LLVM набор утилит для разработки front-end и back-end • https://github.com/dotnet/corefxlab LowAllocationWebServer MultiValueDictionary • https://github.com/Microsoft/clr-samples Profiling API Samples for CoreCLR 36
Q&A 37 // Happy debugging :) #define TRUE false Щегрикович
Сергей
[email protected]
@shchegrikovich