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
Siarhei Shchahrykovich
August 23, 2016
Programming
0
97
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
88
5 commandments of pdb
shchahrykovich
0
29
ETW for .Net developers - DotNext 2016 Piter
shchahrykovich
0
23
ETW. Tracing done right
shchahrykovich
1
160
WinDbg by examples
shchahrykovich
0
300
Other Decks in Programming
See All in Programming
AIコーディングAgentとの向き合い方
eycjur
0
270
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
rage against annotate_predecessor
junk0612
0
170
Cache Me If You Can
ryunen344
2
740
Deep Dive into Kotlin Flow
jmatsu
1
340
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
300
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
540
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
1.6k
旅行プランAIエージェント開発の裏側
ippo012
2
910
AI Coding Agentのセキュリティリスク:PRの自己承認とメルカリの対策
s3h
0
220
Namespace and Its Future
tagomoris
6
700
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Agile that works and the tools we love
rasmusluckow
330
21k
A designer walks into a library…
pauljervisheath
207
24k
Why Our Code Smells
bkeepers
PRO
339
57k
KATA
mclloyd
32
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Git: the NoSQL Database
bkeepers
PRO
431
66k
The Invisible Side of Design
smashingmag
301
51k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Gamification - CAS2011
davidbonilla
81
5.4k
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