Конечно же очередная проблема свалилась на мою голову, хотя, проанализировав её я могу чётко сказать, что это я её же и себе сам свалил.
Но в этот раз ошибка связана не с указателями, ссылками или стековыми переменными, а с нарушением использования API.
Суть проблемы - необходимо построить дерево в таблице - для этого использую QTreeView и собственную реализацию модели на основании QAbstractItemModel.
Если бегло - то для дерева я сам должен забоится о создании индексов дерева, но в одном прекрасном месте я создавал наполовину верный индекс (т.е с одной стороны он распознаётся как верный, с другой стороны значений по этому индексу просто не может быть, и это не корень).
Qt безусловно защищается от нерадивых программистов через Q_ASSERT, да только вот беда в том, что если qt была собрана без debug информации, т.е. release, и никаких Q_ASSERT уже там нет.
А стек... stack was corrupted и точка. Никакой gdb уже не поможет тут.
Мораль: Соблюдайте API и по возможности используйте библиотеки с включённой debug информацией.
Thread Safety Issues with Vector and Hashtable
56 минут назад
Комментариев нет:
Отправить комментарий