SIGSEGV при dynamic_cast
От: Kakadu.Hafanana  
Дата: 07.03.11 08:04
Оценка:
Симпотомы: segmentation fault
Не может сделать dynamic_cast тут. Сигнал для этого слота вызывается здесь. Указатель ненулевой и там, и там.

Либо я не так написал паттерн визитор, либо есть хитрость в передаче указателей с сигналами, либо руки кривые попросту.

Меня беспокоит, что эта штука сыпется не всегда. Тут можно поиграть с размерами моего "поля". При разных числах всё либо работает, либо падает при обработке MoveUnitAction сразу же, либо падает в конце где-то. Иногда qtcreator честно ругается на dynamic_cast, а иногда вместо кода С++ в дебаггере только дизассемблер.

P.S. Мне тут порекомендовали valgrind, буду разбираться.
signal visitor
Re: SIGSEGV при dynamic_cast
От: fdn721  
Дата: 07.03.11 09:22
Оценка:
Здравствуйте, Kakadu.Hafanana, Вы писали:

KH>Симпотомы: segmentation fault

KH>Не может сделать dynamic_cast тут. Сигнал для этого слота вызывается здесь. Указатель ненулевой и там, и там.

KH>Либо я не так написал паттерн визитор, либо есть хитрость в передаче указателей с сигналами, либо руки кривые попросту.


KH>Меня беспокоит, что эта штука сыпется не всегда. Тут можно поиграть с размерами моего "поля". При разных числах всё либо работает, либо падает при обработке MoveUnitAction сразу же, либо падает в конце где-то. Иногда qtcreator честно ругается на dynamic_cast, а иногда вместо кода С++ в дебаггере только дизассемблер.


KH>P.S. Мне тут порекомендовали valgrind, буду разбираться.


А ваши MoveUnitAction и т.д случаем не наследники QObject?

Если да, то временем их жизни управляет родитель, и delete делать нельзя.
Re: SIGSEGV при dynamic_cast
От: Kakadu.Hafanana  
Дата: 07.03.11 09:32
Оценка:
Здравствуйте, Kakadu.Hafanana, Вы писали:

KH>Симпотомы: segmentation fault

KH>Не может сделать dynamic_cast тут. Сигнал для этого слота вызывается здесь. Указатель ненулевой и там, и там.

KH>Либо я не так написал паттерн визитор, либо есть хитрость в передаче указателей с сигналами, либо руки кривые попросту.


KH>Меня беспокоит, что эта штука сыпется не всегда. Тут можно поиграть с размерами моего "поля". При разных числах всё либо работает, либо падает при обработке MoveUnitAction сразу же, либо падает в конце где-то. Иногда qtcreator честно ругается на dynamic_cast, а иногда вместо кода С++ в дебаггере только дизассемблер.


KH>P.S. Мне тут порекомендовали valgrind, буду разбираться.



Уже не актулально. Помог анекдот про Красную Шапочку, Волка и яблоки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.