Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Blackwanderer от Май 24, 2011, 11:06



Название: "Падает" gdb при установке breakpoint на функцию qFatal
Отправлено: 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 - по умолчанию.


Название: Re: "Падает" gdb при установке breakpoint на функцию qFatal
Отправлено: GreatSnake от Май 24, 2011, 11:43
Цитировать
Можно ли как-то узнать более подробно о причине крэша?
Когда программёры gdb исправят баг, то м.б. увидишь в change-log-e )
Попробуй поставить break на abort.


Название: Re: "Падает" gdb при установке breakpoint на функцию qFatal
Отправлено: Blackwanderer от Май 24, 2011, 11:50
Попробуй поставить break на abort.
breakpoint ставлю не я, а QtCreator :(
я всего лишь выяснил, что проблема именно в этом breakpoint'е


Самое интересное, что проблема наблюдается не на всех приложениях. На каких-то все отрабатывает нормально.


Название: Re: "Падает" gdb при установке breakpoint на функцию qFatal
Отправлено: gogi от Май 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.