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
90
5 commandments of pdb
shchahrykovich
0
30
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
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
130
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
260
理論と実務のギャップを超える
eycjur
0
140
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
1k
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
120
オープンソースソフトウェアへの解像度🔬
utam0k
16
3k
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
520
Railsだからできる 例外業務に禍根を残さない 設定設計パターン
ei_ei_eiichi
0
940
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
500
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
yordgenome03
1
130
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
260
Claude Agent SDK を使ってみよう
hyshu
0
1.2k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
BBQ
matthewcrist
89
9.8k
Balancing Empowerment & Direction
lara
5
690
Automating Front-end Workflow
addyosmani
1371
200k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Bash Introduction
62gerente
615
210k
Rails Girls Zürich Keynote
gr2m
95
14k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
KATA
mclloyd
PRO
32
15k
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