Ошибка сегментации в QHash

Я получил следующий сбой в QHash. Я не могу найти что-либо в. Я использую Qtopia-Core-4.3.3 на Linux-машине.

Журнал выглядит следующим образом:

ASSERT: "*node == e || (*node)->next" в файле
/usr/local/Trolltech/QtopiaCore-4.3.3-400wrl/include/QtCore/qhash.h, строка 824
Ошибка сегментации

Может ли кто-нибудь помочь мне в этом?


person Ajay    schedule 19.06.2009    source источник
comment
На самом деле, я не знаю, откуда генерируется это утверждение. Выложить код будет сложно, он на 30 000 строк.   -  person Ajay    schedule 19.06.2009
comment
Если вы используете Windows и Visual Studio, запустите приложение, прервите утверждение, а затем перейдите к последней записи стека в вашем коде.   -  person Cătălin Pitiș    schedule 19.06.2009
comment
Запусти под valgrind, а потом выложи сообщения об ошибках.   -  person Ariya Hidayat    schedule 20.06.2009


Ответы (1)


Просто дикая догадка, но, основываясь на том факте, что QHash является контейнером и относится к «узлу», я думаю, что данное утверждение вызвано тем, что программа ожидает, что узел является либо конечным узлом (e), либо имеет следующий узел. Таким образом, кажется, что вы что-то делаете, искажаете записи в хэше.

Чтобы продолжить дикие предположения, я часто видел некоторые трудно диагностируемые ошибки, когда кто-то выполнял итерацию по контейнеру и иногда удалял что-то из контейнера во время итерации. Я не знаю, хорошо ли QHash справляется с этим или нет.

person Caleb Huitt - cjhuitt    schedule 19.06.2009