Anonymní profil Tassadar – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Tassadar – Programujte.comAnonymní profil Tassadar – Programujte.com

 

Příspěvky odeslané z IP adresy 83.240.110.–

Tassadar
C / C++ › Vysvětlení backtrace
25. 5. 2010   #129412

Díky za rady, prostě jsem před to delete dal kontrolu if(IsInWorld()) která musí vyhodit true pokud objekt ještě existuje. Bohužel, není to dobré řešení, lepší by bylo najít jak je možné, že se ten delete volá, ale v tom programu ze kterého backtrace pochází, je to docela nesnadné, protože je open-source a je obrovský :(

Tassadar
C / C++ › Vysvětlení backtrace
25. 5. 2010   #129383

Takže jednoduše kontrola if(object) by měla stačit?

Tassadar
C / C++ › Vysvětlení backtrace
24. 5. 2010   #129368

Zdravím,
nedávno mi jeden program začal padat na dekonstruktoru jedné třídy: http://pastebin.com/HhTfM7kp . Ještě sem se s níčím takovým nesetkal, a tak nevím, co s tím.

Mám pár nápadů co by to mohlo způsobovat, ale víceméně sou to jen tipy:
1. Nějáký std::list<Aura*> není smazaný před voláním dekonstruktoru(podle par poslednich radku z backtrace)
2. Dekonstruktor je volan "spatny" - viz ~Totem(), který je volaný před dekonstruktorem mateřské třídy Creature, možná to není totem ale nějáká jiná pod-třída.
3. Creature už byla smazaná v jiném vlákně(?)

Díky za všechny rady.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý