Odpovídáte na názor ke článku SEH v Linuxu (C++).
Fair enough. Jsem ten typ cloveka co radeji pouziva nativni konstrukce, obvzlaste u obsluhy exception nez zbesile bastleni v makrech.
Ja mel za to ze je rec o Linuxu, nikoliv vsech posix kompatibilnich systemech :)
Pravdou take je ze mnou popisovany postup funguje pouze na specificke implementaci signalu - v handleru musi byt dostupny stack context, aby spravne fungoval unwind - lze snadno overit v gdb ze se korektne zobrazi backtrace.
Toto plati pro vetsinu modernich unixu (linux, *bsd, solaris), ale na tech starsich (linux-2.2, solaris 6, hpux) si muze clovek nabit hubu protoze je vynucen alternativni stack.
sigsetjmp() JE elegantni posixove reseni. Ale pouze v C, nebo v C++ s -fno-exceptions.
Stejne jako posix rika ze je undefined throw ze signalu, stejne tak je undefined michani nativnich exceptions se setjmp/longjmp. Mimo jine z duvodu o kterych tu mnozi psali.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 57 608×
Přečteno 27 722×
Přečteno 26 403×
Přečteno 24 367×
Přečteno 22 864×