Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Script. Интеграция WebKit _ SEGFAULT во время выполнения скриптов

Автор: mva 23.3.2015, 15:58

Добрый день!

Отлавливаю ошибку в своем приложении, которое на небольших входных данных работает нормально. Если взять входной файл подлиннее, во время выполнения скриптов, которые вызывают функцию из основного приложения, случайным образом происходит ошибка сегментации. Свойство одного из классов почему-то становится равным нулю в недрах библиотеки libQtCore. С помощью gdb я отследил этот момент и выяснил, что проиходит это в фунциии QObjectPrivate::clearGuards(QObject*) в QtCore.
Нашел исходный код этой функции, вот он:

void QObjectPrivate::clearGuards(QObject *object)
{
  if (!QObjectPrivate::get(object)->hasGuards)
    return;
  GuardHash *hash = guardHash();
  if (hash) {
    QMutexLocker locker(guardHashLock());
    GuardHash::iterator it = hash->find(object);
    const GuardHash::iterator end = hash->end();
    while (it.key() == object && it != end) {
      *it.value() = 0;
      it = hash->erase(it);
    }
  }
}

Как понять, что тут проиходит, и что мне делать?
Свой код я пока не выкладываю, ввиду его сложности.

Автор: mva 23.3.2015, 19:43

Вопрос снимается. Разобрался сам.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)