Błedy w debugerze ... biblioteka stl itd

0

Od jakiegoś czasu zmagam się z błędami mojej kilkunastotysięczno linijkowej aplikacji wielowątkowej.

Powoli już nie wytrzymuje a w debugerze pojawiają sie coraz to nowe błędy.

Błędy występują mniej więcej po kilku godzinach.

Zakładałem już pare tematów o niezłapanych wyjątkach, itd i jak zregenerować wątek po crashu, ale nadal nie rozumiem.

Więc mam pytanie.

jak zrobić, żeby się nie narobić(wstawiać do każdej funkcji catch, throw itd), i wyłapać każdy wyjątek, żeby nie pojawiło się okienko krytycznego błędu windowsa (wysyłaj / nie wysyłaj) i móc zregenerować wątek.

Z góry dziękuje za pomoc

0

Zedytowane:

słowo "biblioteka stl" w temacie wątku to pomyłka

0

Każda instrukcja która może mieć sytuacje awaryjną musi mieć jakiegoś throw (chyba ze to jest jakiś standardowy wyjątek typu bad_alloc to wtedy o jego rzucenie zadba konkretna funkcja z stl)
Możesz zrobic catch(...) żeby złapać każdy możliwy wyjątek, ale to nie da ci informacji o tym jakiego typu jest wyjątek co uniemozliwi ci regeneracje wątku.

0

Ale poco mi wiedzieć co to za wyjątek był? To nie dało by się wtedy nowego wątku zrobić?

A jak np debuger w kompilatorze wykrywa każdy wyjątek i zatrzymuje aplikacje?

Jakoś musi się dać : /

0

Zedytowane:

Chyba zle napisalem.
Mi nie zależy żeby o tak "zregenerować wątek" tylko po prostu żeby go wywalić (zamknąć, wyłączyć, terminate), a następnie stworzyć nowy.

Btw. słowo "biblioteka stl" nie ma nic wspólnego z tym tematem(po prostu mi się ctrl v wcisnelo przy zakladaniu tematu )

0

Obsluga wyjatkow przede wszystkim. Pamietaj jednak, ze takie sprawy jak naruszenie pamieci to nie wyjatek, a tzw. structured exception (jesli mowa o windowsie). Innymi slowy w tym wypadku"wysylaj/nie wysylaj" pojawi sie bez wzgledu na to czy chciales tam cos zlapac czy nie.

Jak zrobic, zeby sie nie narobic? Pisac aplikacje tak, zeby wyjatki byly lapane, a sytuacje typu naruszenie pamieci byly wyeliminowane.

Pytanie "jak zregenerowac wyjatek po crachu" jest mocno nie na miejscu. Przede wszystkim nie powinno byc crasha ;)

0

nie prawda, structured exceptions rowniez mozna lapac. VS200x maja w skladni rozszerzenia instruujace kompilator, aby catch takie wyjatki lapal rowniez. pytanie tylko -- czy jest sens? przy wiekszosci SEH aplikacja jest juz w takim stanie rozpadu, ze co najwyzej mozna zapisac gdzies info do logow, a i to jest niebezpieczne:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1