Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
Qt Creator 2.1.0-beta2
-
None
-
Windows XP, Qt 4.7.0, MinGW GCC 4.4.0, boost 1.43
Description
When gdb-i686-pc-mingw32.exe is used without debug helpers (i.e. gdbmacros directory renamed to _gdbmacros) debugging in QtCreator works fine and without an problems - but also without pretty printing. When gdb-i686-pc-mingw32.exe uses python pretty printers from gdbmacros directory then there is an extrem slowdown for all debug operations. That means a single step operation needs almost 2 minutes to complete. During the whole time the gdb-i686-pc-mingw32.exe process needs 100% processing power. So there mus be a bug in the pretty printer python scripts that cause these issue.
The following output from the debugger log shows this issue. I cleared the log output before I clicked the Step Into (F11) button. Right after the click the following data was printed:
dNOTE: INFERIOR RUN REQUESTED dState changed from InferiorStopOk(13) to InferiorRunRequested(9). sStep requested... <104-exec-step >104^running dNOTE: INFERIOR RUN OK dState changed from InferiorRunRequested(9) to InferiorRunOk(10). >*running,thread-id="1" >*running,thread-id="all" >*stopped,reason="end-stepping-range",frame={addr="0x71259d49",func="ICore::instance",args=[],file="..\\..\\..\\src\\libs\\core\\CoreImpl.cpp",fullname="D:\\CodingXP\\cetoni_projects\\LifeCellStudio\\build\\libs\\core/..\\..\\..\\src\\libs\\core\\CoreImpl.cpp",line="199"},thread-id="1",stopped-threads="all" dNOTE: INFERIOR SPONTANEOUES STOP dState changed from InferiorRunOk(10) to InferiorStopOk(13). sStopped: "end-stepping-range" <105bb options:fancy,autoderef vars: expanded: typeformats: formats: watchers: <106-stack-list-frames 0 20 <107-thread-info >&"bb options:fancy,autoderef vars: expanded: typeformats: formats: watchers:\n"
After 20 seconds of waiting the following text was printed:
105: bb options:fancy,autoderef vars: expanded: typeformats: formats: watchers: => handleStackFramePython d106: -stack-list-frames 0 20 => handleStackListFrames d107: -thread-info => handleThreadInfo dTIMED OUT WAITING FOR GDB REPLY. COMMANDS STILL IN PROGRESS: dCONTINUE DEBUGGER AS REQUESTED BY USER
After another 90 seconds the single step finished with the following output:
~"data=[,]\n" >167^done <Rebuild Watchmodel 24> sFinished retrieving data >168^done,stack=[frame={level="0",addr="0x71259d49",func="ICore::instance",file="..\\..\\..\\src\\libs\\core\\CoreImpl.cpp",fullname="D:\\CodingXP\\cetoni_projects\\LifeCellStudio\\build\\libs\\core/..\\..\\..\\src\\libs\\core\\CoreImpl.cpp",line="199"},frame={level="1",addr="0x7125652d",func="CProjectManager::newProject",file="..\\..\\..\\src\\libs\\core\\projectmanager\\ProjectManager.cpp",fullname="D:\\CodingXP\\cetoni_projects\\LifeCellStudio\\build\\libs\\core/..\\..\\..\\src\\libs\\core\\projectmanager\\ProjectManager.cpp",line="261"},frame={level="2",addr="0x712611ae",func="CProjectManager::qt_metacall",file="moc\\moc_ProjectManager.cpp",fullname="D:\\CodingXP\\cetoni_projects\\LifeCellStudio\\build\\libs\\core/moc\\moc_ProjectManager.cpp",line="89"},frame={level="3",addr="0x6a20446c",func="QMetaObject::metacall",file="kernel\\qmetaobject.cpp",fullname="C:/CodingXP/Qt/qt\\src\\corelib/kernel\\qmetaobject.cpp",line="237"},frame={level="4",addr="0x6a214bce",func="QMetaObject::activate",file="kernel\\qobject.cpp",fullname="C:/CodingXP/Qt/qt\\src\\corelib/kernel\\qobject.cpp",line="3272"},frame={level="5",addr="0x0081d122",func="QAction::triggered",file="tmp/moc/debug_shared/moc_qaction.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/tmp/moc/debug_shared/moc_qaction.cpp",line="263"},frame={level="6",addr="0x0081c61d",func="QAction::activate",file="kernel\\qaction.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/kernel\\qaction.cpp",line="1256"},frame={level="7",addr="0x00c2fedc",func="QMenuPrivate::activateCausedStack",file="widgets\\qmenu.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/widgets\\qmenu.cpp",line="993"},frame={level="8",addr="0x00c3031b",func="QMenuPrivate::activateAction",file="widgets\\qmenu.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/widgets\\qmenu.cpp",line="1085"},frame={level="9",addr="0x00c343f7",func="QMenu::mouseReleaseEvent",file="widgets\\qmenu.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/widgets\\qmenu.cpp",line="2301"},frame={level="10",addr="0x008741c0",func="QWidget::event",file="kernel\\qwidget.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/kernel\\qwidget.cpp",line="8187"},frame={level="11",addr="0x00c34a4f",func="QMenu::event",file="widgets\\qmenu.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/widgets\\qmenu.cpp",line="2410"},frame={level="12",addr="0x00829714",func="QApplicationPrivate::notify_helper",file="kernel\\qapplication.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/kernel\\qapplication.cpp",line="4396"},frame={level="13",addr="0x00827917",func="QApplication::notify",file="kernel\\qapplication.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/kernel\\qapplication.cpp",line="3959"},frame={level="14",addr="0x6a1ff9ea",func="QCoreApplication::notifyInternal",file="kernel\\qcoreapplication.cpp",fullname="C:/CodingXP/Qt/qt\\src\\corelib/kernel\\qcoreapplication.cpp",line="732"},frame={level="15",addr="0x00e9e82a",func="QCoreApplication::sendSpontaneousEvent",file="../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h",fullname="C:/CodingXP/Qt/qt\\src\\gui/../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h",line="218"},frame={level="16",addr="0x00826126",func="QApplicationPrivate::sendMouseEvent",file="kernel\\qapplication.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/kernel\\qapplication.cpp",line="3056"},frame={level="17",addr="0x0088f737",func="QETWidget::translateMouseEvent",file="kernel\\qapplication_win.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/kernel\\qapplication_win.cpp",line="3230"},frame={level="18",addr="0x0088aac6",func="QtWndProc@16",file="kernel\\qapplication_win.cpp",fullname="C:/CodingXP/Qt/qt\\src\\gui/kernel\\qapplication_win.cpp",line="1657"},frame={level="19",addr="0x7e368734",func="USER32!GetDC",from="C:\\WINDOWS\\system32\\user32.dll"},frame={level="20",addr="0x00000000",func="??"}] >169^done,threads=[{id="9",target-id="Thread 1508.0xe5c",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="8",target-id="Thread 1508.0x1698",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="7",target-id="Thread 1508.0x11e8",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="6",target-id="Thread 1508.0x13a8",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="5",target-id="Thread 1508.0x170c",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="4",target-id="Thread 1508.0x71c",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="3",target-id="Thread 1508.0x1558",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="2",target-id="Thread 1508.0xbe4",frame={level="0",addr="0x7c91e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="1",target-id="Thread 1508.0x1214",frame={level="0",addr="0x71259d49",func="ICore::instance",args=[],file="..\\..\\..\\src\\libs\\core\\CoreImpl.cpp",fullname="D:\\CodingXP\\cetoni_projects\\LifeCellStudio\\build\\libs\\core/..\\..\\..\\src\\libs\\core\\CoreImpl.cpp",line="199"},state="stopped"}],current-thread-id="1"
During the whole time the CPU load was 100% percent. The bug is not related to gdb-i686-pc-mingw32.exe because without python pretty printers it works without any issues.
If the python pretty printers from gdbmacros are used together with gdb-python27.exe from http://sourceforge.net/projects/mingw/files/MinGW/BaseSystem/GDB/GDB-7.2/gdb-7.2-1-mingw32-bin.tar.lzma/download and python2.7 then they cause wrong debug output and single stepping does not work properly anymore (i.e. Step Into (F11) may result in a stop on a complete different Qt function)
Attachments
Issue Links
- relates to
-
QTCREATORBUG-3089 QT Creator gdb debugger slow when stepping (F10 - F11)
-
- Closed
-