Russian Qt Forum
Ноябрь 24, 2024, 09:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: "Падает" gdb при установке breakpoint на функцию qFatal  (Прочитано 4289 раз)
Blackwanderer
Гость
« : Май 24, 2011, 11:06 »

Доброго времени суток!
Столкнулся со следующей проблемой: при попытке поставить breakpoint на функцию qFatal gdb "падает". В журнале отладки QtCreator видим:
Код:
ALL COMMANDS DONE; INVOKING CALLBACK
<287maint print msymbols C:/Users/BLACKW~1/AppData/Local/Temp/gdb_ns_.F11296
>&"maint print msymbols C:/Users/BLACKW~1/AppData/Local/Temp/gdb_ns_.F11296\n"
>287^done
dFOUND NON-NAMESPACED QT
<288-break-insert -f 'qFatal'
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x6 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x6 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x6 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x6 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x6 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x6 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x6 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x6 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x0 in read in psymtab, but not in symtab.)
 
>&"\n"
>&"warning: (Internal error: pc 0x6 in read in psymtab, but not in symtab.)\n"
 (Internal error: pc 0x6 in read in psymtab, but not in symtab.)
 
>&"\n"
dHANDLE GDB ERROR: Процесс gdb завершился крахом через некоторое время после успешного запуска.
dGDB PROCESS FINISHED, status 1, code -1073741819
dNOTE: ENGINE ILL ******
dState changed from InferiorSetupRequested(4) to EngineShutdownRequested(20).
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN ENGINE
dPLAIN ADAPTER SHUTDOWN 20
dINITIATE GDBENGINE SHUTDOWN IN STATE 4, PROC: 0
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22).
dState changed from EngineShutdownOk(22) to DebuggerFinished(23).
dQUEUE: FINISH DEBUGGER
dNOTE: FINISH DEBUGGER
dHANDLE RUNCONTROL FINISHED

При запуске gdb вручную из консоли после команды break qFatal также получаем кучу сообщений вида (Internal error: pc 0x6 in read in psymtab, but not in symtab.) и "падение".

Сталкивался ли кто-нибудь с такой проблемой, и если да, то как удалось справиться? Можно ли как-то узнать более подробно о причине крэша? Можно ли в QtCreator отключить автоматическую установку breakpoint'а на qFatal?

QtCreator 2.2, Qt 4.7.2-MinGW, Windows 7. Настройки QtCreator - по умолчанию.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Май 24, 2011, 11:43 »

Цитировать
Можно ли как-то узнать более подробно о причине крэша?
Когда программёры gdb исправят баг, то м.б. увидишь в change-log-e )
Попробуй поставить break на abort.
Записан

Qt 5.11/4.8.7 (X11/Win)
Blackwanderer
Гость
« Ответ #2 : Май 24, 2011, 11:50 »

Попробуй поставить break на abort.
breakpoint ставлю не я, а QtCreator Грустный
я всего лишь выяснил, что проблема именно в этом breakpoint'е


Самое интересное, что проблема наблюдается не на всех приложениях. На каких-то все отрабатывает нормально.
« Последнее редактирование: Май 24, 2011, 11:54 от Черный Странник » Записан
gogi
Гость
« Ответ #3 : Май 25, 2011, 10:17 »

QtCreator 2.2, Qt 4.7.2-MinGW, Windows 7. Настройки QtCreator - по умолчанию.

А самого главного - версию gdb не написал. Ведь ошибка-то в нём происходит?
Тут вариантов действий несколько: для начала попробовать разные версии(7.2, 7.1, 7.0.1, 6.8, 7.3-git, ...). Может быть собранные самостоятельно или кем-то ещё с какими-то дополнительными патчами/опциями. Если всё по-прежнему, вбиваешь в гуголь своё информационное сообщение об ошибке и изучаешь трёп из разнообразных форумов/списков рассылки(как правило на английском языке). На вскидку - есть какие-то упоминания даже от 2003-го года и патчи даже есть какие-то. Даже гуглить лучше с самого начала.
Ну и есть самый простой вариант действий - забить. Отладится как-то иначе - с другим отладчиком и/или печатью отладки в stdout.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 22.