🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
5 messages
5 total messages Started by Borneq Tue, 11 Dec 2012 09:45
SEH w Linuxie
#72584
Author: Borneq
Date: Tue, 11 Dec 2012 09:45
3 lines
1086 bytes
Czy jest jakiś odpowiednik Structured Exception Handling w Linuxie? Czy są 
gdzieś dane wątku, podobnie jak taki blok jest wskazywany przez segment FS w 
Windows? 
Re: SEH w Linuxie
#72585
Author: Stachu 'Dozzie' K.
Date: Tue, 11 Dec 2012 12:11
14 lines
1698 bytes
On 2012-12-11, Borneq <borneq@antyspam.hidden.pl> wrote:
> Czy jest jakiś odpowiednik Structured Exception Handling w Linuxie? Czy są 
> gdzieś dane wątku, podobnie jak taki blok jest wskazywany przez segment FS w 
> Windows? 

A co to jest SEH? Co to jest "segment FS"? I dlaczego to miałoby być
mechanizmem systemu operacyjnego zamiast mechanizmem języka?

Jesteś na grupie linuksowej, nie zakładaj, że pozostali są
doświadczonymi programistami Windows.

-- 
Secunia non olet.
Stanislaw Klekot
Re: SEH w Linuxie
#72586
Author: Borneq
Date: Tue, 11 Dec 2012 14:26
18 lines
2224 bytes
Użytkownik "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> 
napisał w wiadomości news:slrnkce8o0.ni1.dozzie@jarowit.net...
> A co to jest SEH? Co to jest "segment FS"? I dlaczego to miałoby być
> mechanizmem systemu operacyjnego zamiast mechanizmem języka?

Chodziło mi o to czy w Linuksie jest jakiś standard obsługi wyjątków, czy 
też to zależy od kompilatora? Pliki asemblerowe generowane przez GCC 
zawierają odwołania do 
funkcji:_cxa_allocate_exception,__cxa_throw,__cxa_begin_catch,__cxa_end_catch
W opisie 
http://www.hexblog.com/wp-content/uploads/2012/06/Recon-2012-Skochinsky-Compiler-Internals.pdf 
jest że GCC korzyta albo z setjmp/longjmp albo z "zero-cost", który jest 
jednak bardzo skompiikowany. Programowo można rzucać wyjątek i go odbierać w 
sposób zależny od kompilatora, ale do wyjątków typu dzielenia przez zero lub 
zapis w niedozwolonym miejscu pamięci potrzebna jest współpraca systemu. 
Linux ma coś takiego jak sygnały, czy wyjątki opierają się na sygnałach? 
Próbowałem przejąć sygnał dzielenia przez zero. Co do "segmentu FS"  -czy w 
Linuxie jest jakiś prosty sposób dostania się do bloku informacji o wątku? 
Re: SEH w Linuxie
#72587
Author: Stachu 'Dozzie' K.
Date: Tue, 11 Dec 2012 15:05
35 lines
2836 bytes
On 2012-12-11, Borneq <borneq@antyspam.hidden.pl> wrote:
> Użytkownik "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> 
> napisał w wiadomości news:slrnkce8o0.ni1.dozzie@jarowit.net...
>> A co to jest SEH? Co to jest "segment FS"? I dlaczego to miałoby być
>> mechanizmem systemu operacyjnego zamiast mechanizmem języka?
>
> Chodziło mi o to czy w Linuksie jest jakiś standard obsługi wyjątków, czy 
> też to zależy od kompilatora?

Zapewne zależy to od ABI. Dla C++ pod Linuksem de facto standardem jest
GCC. W C w ogóle nie występuje coś takiego jak wyjątki, więc tu nawet
nie ma o czym mówić.

Zresztą pod Windows też zależy (zależało?) od ABI. Kiedyś biblioteki,
które wyszły spod Borlanda, nie współpracowały z VC++.

> [...]
> Programowo można rzucać wyjątek i go odbierać w 
> sposób zależny od kompilatora, ale do wyjątków typu dzielenia przez zero lub 
> zapis w niedozwolonym miejscu pamięci potrzebna jest współpraca systemu. 
> Linux ma coś takiego jak sygnały, czy wyjątki opierają się na sygnałach? 

Wyjątków jako takich w API uniksowym nie ma w ogóle. Są sygnały, ale to
co innego niż typowo się rozumie przez wyjątki i inaczej się z tym
postępuje.

> Próbowałem przejąć sygnał dzielenia przez zero. Co do "segmentu FS"  -czy w 
> Linuxie jest jakiś prosty sposób dostania się do bloku informacji o wątku? 

A czego konkretnie chcesz o tym wątku się dowiedzieć?
Oglądałeś `man -k pthread'?

-- 
Secunia non olet.
Stanislaw Klekot
Re: SEH w Linuxie
#72588
Author: Borneq
Date: Tue, 11 Dec 2012 15:25
15 lines
1728 bytes
Użytkownik "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> 
napisał w wiadomości news:slrnkceit6.ni1.dozzie@jarowit.net...
> Zapewne zależy to od ABI. Dla C++ pod Linuksem de facto standardem jest
> GCC. W C w ogóle nie występuje coś takiego jak wyjątki, więc tu nawet
> nie ma o czym mówić.

> Wyjątków jako takich w API uniksowym nie ma w ogóle. Są sygnały, ale to
> co innego niż typowo się rozumie przez wyjątki i inaczej się z tym
> postępuje.

> A czego konkretnie chcesz o tym wątku się dowiedzieć?
> Oglądałeś `man -k pthread'?

jest tego sporo, na przykład
man pthread_attr_getstack 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads