2018-12-16:

Wyjątki od kuchni

programista
Zmniejszona wersja pierwszej strony artykułu, pokazana jedynie w celach ilustracyjnychW okolicach lata 2014 zainspirowany zadaniem CTFowym membership z kwalifikacji na koreański Codegate 2014, stworzyłem artykuł opisujący jak działają wyjątki w C++ "pod linuxem", czyli w GCC/GNU libc/GNU libstdc++. A jest to mechanizm bardzo ciekawy, bo znaleźć w nim można np. maszynę wirtualną, która realizuje pewien specyficzny kod bajtowy w momencie rzucenia wyjątku.

W każdym razie artykuł został opublikowany a magazynie Programista, ale zapomniałem go wrzucić potem na swojego bloga. Czas więc to nadrobić:

Artykuł na Google Docs (w menu File jest opcja do pobrania w PDF i innych formatach)
Cały numer Programisty z tym artykułem (w formie EPUB, wymaga zapisania na newsletter)

Dodam tylko, że wersja artykułu z pierwszego linka może zawierać drobne literówki - jest to wersja po głównej korekcie, ale przed składem i drugą korektą.

P.S. Podziękowania dla j00ru i KrzaQ za techniczne review artykułu, oraz Tomasza Łopuszańskiego z redakcji Programisty za korektę.
P.P.S. Artykuł powinien chyba nazywać się "Wyjątki u krasnoludów i elfów", bo... no wiecie, DWARF, ELF...

Comments:

2018-12-22 12:50:37 = wgebczyk
{
Dzieki za ciekawy artykul. Temat odgrzebales bo znalazles bug/exploit na DWARF bytecode? Za 60-90 dni mozemy spodziewac sie jakiejs ciekawej publikacji? :)
}
2018-12-22 13:09:43 = Gynvael Coldwind
{
@wgebczyk
Haha nie, akurat nie :)
Na livestreamie o projektowaniu biblioteki NetSock 2.0 wpadłem w dygresję na temat wyjątków w C++, czy ich używać lub nie, i tego jak działają od kuchni :)
}
2018-12-28 09:01:24 = luki
{
lel
}
2019-01-28 20:23:42 = dasm
{
Niestety, link do dw2example ląduje w próżni. Jakaś szansa na ponowne udostępnienie go?
}
2019-01-28 20:25:49 = dasm
{
Nieważne. Ten sam program jest w treści artykułu, doh.
}
2019-01-28 20:37:42 = Gynvael Coldwind
{
@dasm
Ups, literówka była (dowload -> download):
http://gynvael.coldwind.pl/download.php?f=dw2example.zip
(poprawiłem tez w artykule)
}

Add a comment:

Nick:
URL (optional):
Math captcha: 6 ∗ 7 + 7 =