[Qt] lazarus qt x86_64 rangecheck and segfault probs

Terry Kemp klc at klc.net.nz
Fri Aug 22 03:46:41 CEST 2008


Hi Qt people,

I have finally been sufficiently annoyed by the constant access
violation popups using Lazarus with Qt LCL on x86_64 that I decided to
track it down ;)

-----------------------------
1st problem is a rangecheck error when compiled with -g 

see attached gdb-lazqt-rangecheck.txt
 
its in the call to 
function GetIntsPtr(PA : PIntArray): PPtrInt; cdecl; export;
begin
  Result := @PA^[0];
end; 

I have no clue on this one (but its not a show stopper).

---------------------------------
2nd is continual access violation popups when hovering over forms,
buttons, ide components etc. The 'hint popup' displays normally the
first time then everytime thereafter it segfaults the program.

This seems to be to do with the 'free' call in 


procedure TQtObject.EndEventProcessing;
begin
  if FInEventCount > 0 then
    dec(FInEventCount);
  if (FInEventCount = 0) and FReleaseInEvent then
    Free;
end;


I have modified qtobjects.pas TQtTimer.EventFilter ...


Index: lcl/interfaces/qt/qtobjects.pas
===================================================================
--- lcl/interfaces/qt/qtobjects.pas	(revision 16170)
+++ lcl/interfaces/qt/qtobjects.pas	(working copy)
@@ -3222,7 +3222,10 @@
     QEvent_accept(Event);
 
     if Assigned(FCallbackFunc) then
+     begin
       FCallbackFunc;
+      exit;
+     end;
   end;
   EndEventProcessing;
 end;

and it works a treat. No more crashes and I have code and form hints for
the first time :)

I bet this is not correct tho and may eat memory ;)
Anyone know whats going on here?


Attached is gdb log (output.txt) the shows backtrace of this fault.

regards

Terry

-------------- next part --------------
[tkemp at systems lazarus-svn]$ gdb
GNU gdb Fedora (6.8-17.fc9)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
(gdb) file ./startlazarus
Reading symbols from /build/gumstix/gumstix-fpc/lazarus-svn/startlazarus...done.
(gdb) break fpc_raiseexception
Breakpoint 1 at 0x541ba0
(gdb) r
Starting program: /build/gumstix/gumstix-fpc/lazarus-svn/startlazarus 
[Thread debugging using libthread_db enabled]
[New Thread 0x13dae0 (LWP 18994)]
TLazarusManager.Run starting /build/gumstix/gumstix-fpc/lazarus-svn/lazarus ...
Detaching after fork from child process 19001.
TMainIDE.ParseCmdLineOptions:
  PrimaryConfigPath="/home/tkemp/.lazarus"
  SecondaryConfigPath="/etc/lazarus"
NOTE: codetools config file not found - using defaults
[TMainIDE.Destroy] A 
[TMainIDE.Destroy] B  -> inherited Destroy... TMainIDE
[TMainIDE.Destroy] END
[FORMS.PP] ExceptionOccurred 
  Sender=ERangeError
  Exception=Range check error
  Stack trace:
  $00000000008F6860 line 10920 of qt4.pas
  $000000000187DF1A
  $000000000184C8F9
  $000000000091027D line 2598 of qtwidgets.pas
  $000000000091DB72 line 7311 of qtwidgets.pas
  $0000000000903505 line 112 of qtwsmenus.pp
  $00000000007E1419 line 135 of include/menuitem.inc
  $00000000007E2FD2 line 588 of include/menuitem.inc
  $00000000007E137D line 127 of include/menuitem.inc
  $00000000007E2FD2 line 588 of include/menuitem.inc
  $00000000007E3658 line 710 of include/menuitem.inc
  $0000000000CAD78B line 1031 of menuintf.pas
  $0000000000CB0463 line 1458 of menuintf.pas
  $0000000000685A44 line 1979 of main.pp
  $000000000067FC6D line 1109 of main.pp
  $000000000062CD4A line 98 of lazarus.pp
TApplication.HandleException Range check error
  Stack trace:
  $00000000008F6860 line 10920 of qt4.pas
  $000000000187DF1A
  $000000000184C8F9
  $000000000091027D line 2598 of qtwidgets.pas
  $000000000091DB72 line 7311 of qtwidgets.pas
  $0000000000903505 line 112 of qtwsmenus.pp
  $00000000007E1419 line 135 of include/menuitem.inc
  $00000000007E2FD2 line 588 of include/menuitem.inc
  $00000000007E137D line 127 of include/menuitem.inc
  $00000000007E2FD2 line 588 of include/menuitem.inc
  $00000000007E3658 line 710 of include/menuitem.inc
  $0000000000CAD78B line 1031 of menuintf.pas
  $0000000000CB0463 line 1458 of menuintf.pas
  $0000000000685A44 line 1979 of main.pp
  $000000000067FC6D line 1109 of main.pp
  $000000000062CD4A line 98 of lazarus.pp

Program exited normally.
Missing separate debuginfos, use: debuginfo-install keyutils.x86_64 nas.x86_64
(gdb) file ./lazarus
Load new symbol table from "/build/gumstix/gumstix-fpc/lazarus-svn/lazarus"? (y or n) y
Reading symbols from /build/gumstix/gumstix-fpc/lazarus-svn/lazarus...done.
(gdb) 
(gdb) r
Starting program: /build/gumstix/gumstix-fpc/lazarus-svn/lazarus 
[Thread debugging using libthread_db enabled]
[New Thread 0x13dae0 (LWP 19028)]
TMainIDE.ParseCmdLineOptions:
  PrimaryConfigPath="/home/tkemp/.lazarus"
  SecondaryConfigPath="/etc/lazarus"
NOTE: codetools config file not found - using defaults
Detaching after fork from child process 19033.
Detaching after fork from child process 19034.
Detaching after fork from child process 19035.

Breakpoint 1, 0x000000000063de10 in fpc_raiseexception ()
Missing separate debuginfos, use: debuginfo-install keyutils.x86_64 nas.x86_64
(gdb) bt
#0  0x000000000063de10 in fpc_raiseexception ()
#1  0x0000000000720c03 in SYSUTILS_RUNERRORTOEXCEPT$LONGINT$POINTER$POINTER ()
#2  0x00000000000000c9 in ?? ()
#3  0x00000000008f6860 in GETINTSPTR (GETINTSPTR=0x0, PA=0x0) at qt4.pas:10920
#4  0x00000000008f6860 in GETINTSPTR (GETINTSPTR=0x7fff00000000, PA=0x7fffbe5c22f0) at qt4.pas:10920
#5  0x000000000585cf1a in copyQListTemplateToPInts<QAction*> () from /usr/lib64/libqt4intf.so.1
#6  0x000000000582b8f9 in QWidget_actions () from /usr/lib64/libqt4intf.so.1
#7  0x000000000091027d in GETACTIONBYINDEX (GETACTIONBYINDEX=0x3570620, AINDEX=0, this=0x5fcc500) at qtwidgets.pas:2598
#8  0x000000000091db72 in INSERTMENU (INSERTMENU=0x3570720, AINDEX=0, AMENU=0x2bf09a0, this=0x5fcc500) at qtwidgets.pas:7311
#9  0x0000000000903505 in ATTACHMENU (AMENUITEM=0x3570720, this=0x147c70) at qtwsmenus.pp:112
#10 0x00000000007e1419 in CREATEHANDLE (this=0x3570720) at include/menuitem.inc:135
#11 0x00000000007e2fd2 in HANDLENEEDED (this=0x3570720) at include/menuitem.inc:588
#12 0x00000000007e137d in CREATEHANDLE (this=0x3570620) at include/menuitem.inc:127
#13 0x00000000007e2fd2 in HANDLENEEDED (this=0x3570620) at include/menuitem.inc:588
#14 0x00000000007e3658 in INSERT (INDEX=0, ITEM=0x3570620, this=0x3570320) at include/menuitem.inc:710
#15 0x0000000000cad78b in UPDATEMENUSTRUCTURE (this=0x1015d00) at menuintf.pas:1031
#16 0x0000000000cb0463 in SETMENUITEM (AVALUE=0x3570320, this=0x1015d00) at menuintf.pas:1458
#17 0x0000000000685a44 in SETUPMAINMENU (this=0x1014100) at main.pp:1979
#18 0x000000000067fc6d in CREATE (THEOWNER=0x140130, vmt=0x1226ac0, this=0x1014100) at main.pp:1109
#19 0x000000000062cd4a in main () at lazarus.pp:98
(gdb) 

-------------- next part --------------
[?1034hGNU gdb Fedora (6.8-17.fc9)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...
(gdb) break fpc_raiseexception
Breakpoint 1 at 0x63db50
(gdb) r
Starting program: /build/gumstix/gumstix-fpc/lazarus-svn/lazarus 
[Thread debugging using libthread_db enabled]
[New Thread 0x13dae0 (LWP 20155)]
TMainIDE.ParseCmdLineOptions:
  PrimaryConfigPath="/home/tkemp/.lazarus"
  SecondaryConfigPath="/etc/lazarus"
NOTE: codetools config file not found - using defaults
NOTE: help options config file not found - using defaults
TManagedBreakPoints.NotifyAdd A /home/tkemp/svn-m5m/M5PPC/m5m_main.pas 442
TManagedBreakPoints.NotifyAdd A /home/tkemp/svn-m5m/M5PPC/m5m_main.pas 578
TManagedBreakPoints.NotifyAdd A /groups/Systems/Programming/M5PPC/m5m_timeclock.pas 180
TManagedBreakPoints.NotifyAdd A /home/tkemp/svn-m5m/trunk/m5_timeclock.pas 203
TMainIDE.DoLoadLFM A /home/tkemp/steri-laz-qt/unit1.pas IsPartOfProject=True 
QuickCheckLFMBuffer LFMBuffer=/home/tkemp/steri-laz-qt/unit1.lfm
TJITComponentList.AddJITComponentFromStream.ReadStream Reading: FCurReadJITComponent=:TForm1 StreamClass=TForm1
TMainIDE.DoLoadLFM A /home/tkemp/steri-laz-qt/engscr.pas IsPartOfProject=True 
QuickCheckLFMBuffer LFMBuffer=/home/tkemp/steri-laz-qt/engscr.lfm
TJITComponentList.AddJITComponentFromStream.ReadStream Reading: FCurReadJITComponent=:TForm2 StreamClass=TForm2
TMainIDE.DoLoadLFM A /home/tkemp/steri-laz-qt/setup.pas IsPartOfProject=True 
QuickCheckLFMBuffer LFMBuffer=/home/tkemp/steri-laz-qt/setup.lfm
TJITComponentList.AddJITComponentFromStream.ReadStream Reading: FCurReadJITComponent=:TForm4 StreamClass=TForm4
TMainIDE.DoLoadLFM A /home/tkemp/steri-laz-qt/eng.pas IsPartOfProject=True 
QuickCheckLFMBuffer LFMBuffer=/home/tkemp/steri-laz-qt/eng.lfm
TJITComponentList.AddJITComponentFromStream.ReadStream Reading: FCurReadJITComponent=:TForm3 StreamClass=TForm3
TCustomFormEditor.CreateComponent Form5:TForm5 True
TMainIDE.DoNewEditorFile end unit2.pas
Parent is 'Form5:TForm5'
TCustomFormEditor.CreateComponent MainMenu1:TMainMenu True
TMainIDE.OnPropHookPersistentAdded A MainMenu1:TMainMenu
TP
Program received signal SIGSEGV, Segmentation fault.
0x0000000036180061 in ?? ()
Missing separate debuginfos, use: debuginfo-install keyutils.x86_64 nas.x86_64
(gdb) bt
#0  0x0000000036180061 in ?? ()
#1  0x000000000063c361 in SYSTEM_TOBJECT_$__FREE ()
#2  0x0000000002205620 in ?? ()
#3  0x000000000196cea0 in ?? ()
#4  0x00007fffc7f8e780 in ?? ()
#5  0x000000000087126d in ENDEVENTPROCESSING (this=0x2205620) at qtobjects.pas:735
#6  0x0000000000877a91 in EVENTFILTER (EVENTFILTER=true, SENDER=0x7fe7baff2380, EVENT=0x7fffc7f8ebe0, this=0x2205620) at qtobjects.pas:3227
#7  0x00000000030ac322 in QObject_hook::eventFilter () from /usr/lib64/libqt4intf.so.1
#8  0x0000003609d90d31 in QApplicationPrivate::notify_helper (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>)
    at kernel/qapplication.cpp:3555
#9  0x0000003609d9752f in QApplication::notify (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>)
    at kernel/qapplication.cpp:3504
#10 0x0000003607cea9e0 in QCoreApplication::notifyInternal (this=<value optimized out>, receiver=<value optimized out>, 
    event=<value optimized out>) at kernel/qcoreapplication.cpp:537
#11 0x0000003607d0dc89 in QTimerInfoList::activateTimers (this=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:207
#12 0x0000003607d0a7bd in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:162
#13 0x00000036004374db in IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2012
#14 0x000000360043acbd in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at gmain.c:2645
#15 0x000000360043ae7b in IA__g_main_context_iteration (context=<value optimized out>, may_block=<value optimized out>) at gmain.c:2708
#16 0x0000003607d0a751 in QEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qeventdispatcher_glib.cpp:345
#17 0x0000003609e0641f in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:198
#18 0x0000003607cea157 in QCoreApplication::processEvents (flags=<value optimized out>) at kernel/qcoreapplication.cpp:696
#19 0x00000000030a2b98 in QCoreApplication_processEvents () from /usr/lib64/libqt4intf.so.1
#20 0x000000000084553f in APPWAITMESSAGE (this=0x1120e0) at qtobject.inc:169
#21 0x000000000065a4bc in IDLE (WAIT=true, this=0x140130) at include/application.inc:315
#22 0x000000000065bf60 in HANDLEMESSAGE (this=0x140130) at include/application.inc:976
#23 0x000000000065c301 in RUNLOOP (this=0x140130) at include/application.inc:1086
#24 0x000000000084551e in APPRUN (ALOOP={Proc = {procedure (^pointer)} 0x7fffc7f8f000, Self = 0x140130}, this=0x1120e0) at qtobject.inc:151
#25 0x000000000065c2a8 in RUN (this=0x140130) at include/application.inc:1073
#26 0x000000000062cb6c in main () at lazarus.pp:104
(gdb) c
Continuing.

Breakpoint 1, 0x000000000063db50 in fpc_raiseexception ()
(gdb) c
Continuing.
kgManager.AddUnitDependenciesForComponentClasses Extending Uses unit2.pas Menus
[TEventsCodeTool.CompleteComponent]  CurComponent=MainMenu1:TMainMenu
TApplication.HandleException Access violation
  Stack trace:
  $0000000036180061
  $0000000000877A91 line 
Program received signal SIGSEGV, Segmentation fault.
0x0000000036180061 in ?? ()
Missing separate debuginfos, use: debuginfo-install OpenEXR.x86_64 bzip2.x86_64 ilmbase.x86_64 jasper.x86_64 kdelibs.x86_64 lcms.x86_64 libcap.x86_64 libjpeg.x86_64 libmng.x86_64 libtiff.x86_64
(gdb) bt
#0  0x0000000036180061 in ?? ()
#1  0x000000000063c361 in SYSTEM_TOBJECT_$__FREE ()
#2  0x0000000002205560 in ?? ()
#3  0x000000000196cea0 in ?? ()
#4  0x00007fffc7f8e780 in ?? ()
#5  0x000000000087126d in ENDEVENTPROCESSING (this=0x2205560) at qtobjects.pas:735
#6  0x0000000000877a91 in EVENTFILTER (EVENTFILTER=true, SENDER=0x7fe7bafff790, EVENT=0x7fffc7f8ebe0, this=0x2205560) at qtobjects.pas:3227
#7  0x00000000030ac322 in QObject_hook::eventFilter () from /usr/lib64/libqt4intf.so.1
#8  0x0000003609d90d31 in QApplicationPrivate::notify_helper (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>)
    at kernel/qapplication.cpp:3555
#9  0x0000003609d9752f in QApplication::notify (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>)
    at kernel/qapplication.cpp:3504
#10 0x0000003607cea9e0 in QCoreApplication::notifyInternal (this=<value optimized out>, receiver=<value optimized out>, 
    event=<value optimized out>) at kernel/qcoreapplication.cpp:537
#11 0x0000003607d0dc89 in QTimerInfoList::activateTimers (this=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:207
#12 0x0000003607d0a7bd in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:162
#13 0x00000036004374db in IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2012
#14 0x000000360043acbd in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at gmain.c:2645
#15 0x000000360043ae7b in IA__g_main_context_iteration (context=<value optimized out>, may_block=<value optimized out>) at gmain.c:2708
#16 0x0000003607d0a751 in QEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qeventdispatcher_glib.cpp:345
#17 0x0000003609e0641f in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:198
#18 0x0000003607cea157 in QCoreApplication::processEvents (flags=<value optimized out>) at kernel/qcoreapplication.cpp:696
#19 0x00000000030a2b98 in QCoreApplication_processEvents () from /usr/lib64/libqt4intf.so.1
#20 0x000000000084553f in APPWAITMESSAGE (this=0x1120e0) at qtobject.inc:169
#21 0x000000000065a4bc in IDLE (WAIT=true, this=0x140130) at include/application.inc:315
#22 0x000000000065bf60 in HANDLEMESSAGE (this=0x140130) at include/application.inc:976
#23 0x000000000065c301 in RUNLOOP (this=0x140130) at include/application.inc:1086
#24 0x000000000084551e in APPRUN (ALOOP={Proc = {procedure (^pointer)} 0x7fffc7f8f000, Self = 0x140130}, this=0x1120e0) at qtobject.inc:151
#25 0x000000000065c2a8 in RUN (this=0x140130) at include/application.inc:1073
#26 0x000000000062cb6c in main () at lazarus.pp:104
(gdb) c
Continuing.

Breakpoint 1, 0x000000000063db50 in fpc_raiseexception ()
(gdb) bt
#0  0x000000000063db50 in fpc_raiseexception ()
#1  0x00000000006f7643 in SYSUTILS_RUNERRORTOEXCEPT$LONGINT$POINTER$POINTER ()
#2  0x00007fff000000d8 in ?? ()
#3  0x0000000036180061 in ?? ()
#4  0x00007fffc7f8e780 in ?? ()
#5  0x000000000216d5a0 in ?? ()
#6  0x00007fff00000001 in ?? ()
#7  0x00007fffc7f8df10 in ?? ()
#8  0x0000000000000002 in ?? ()
#9  0x00007fff00000000 in ?? ()
#10 0x00007fffc7f8df98 in ?? ()
#11 0x000000000064b9c4 in SYSTEM_REENABLE_SIGNAL$LONGINT$$BOOLEAN ()
#12 0x00007fff0000000a in ?? ()
#13 0x0000000000641eb2 in SYSTEM_HANDLEERRORADDRFRAME$LONGINT$POINTER$POINTER ()
#14 0x00000000000000d8 in ?? ()
#15 0x0000000036180061 in ?? ()
#16 0x00007fffc7f8e780 in ?? ()
#17 0x0000000000000000 in ?? ()
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x0000000036780061 in ?? ()
(gdb) bt
#0  0x0000000036780061 in ?? ()
#1  0x000000000063c361 in SYSTEM_TOBJECT_$__FREE ()
#2  0x00000000022042a0 in ?? ()
#3  0x000000000196cea0 in ?? ()
#4  0x00007fffc7f8e780 in ?? ()
#5  0x000000000087126d in ENDEVENTPROCESSING (this=0x22042a0) at qtobjects.pas:735
#6  0x0000000000877a91 in EVENTFILTER (EVENTFILTER=true, SENDER=0x1e23810, EVENT=0x7fffc7f8ebe0, this=0x22042a0) at qtobjects.pas:3227
#7  0x00000000030ac322 in QObject_hook::eventFilter () from /usr/lib64/libqt4intf.so.1
#8  0x0000003609d90d31 in QApplicationPrivate::notify_helper (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>)
    at kernel/qapplication.cpp:3555
#9  0x0000003609d9752f in QApplication::notify (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>)
    at kernel/qapplication.cpp:3504
#10 0x0000003607cea9e0 in QCoreApplication::notifyInternal (this=<value optimized out>, receiver=<value optimized out>, 
    event=<value optimized out>) at kernel/qcoreapplication.cpp:537
#11 0x0000003607d0dc89 in QTimerInfoList::activateTimers (this=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:207
#12 0x0000003607d0a7bd in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:162
#13 0x00000036004374db in IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2012
#14 0x000000360043acbd in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at gmain.c:2645
#15 0x000000360043ae7b in IA__g_main_context_iteration (context=<value optimized out>, may_block=<value optimized out>) at gmain.c:2708
#16 0x0000003607d0a751 in QEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qeventdispatcher_glib.cpp:345
#17 0x0000003609e0641f in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:198
#18 0x0000003607cea157 in QCoreApplication::processEvents (flags=<value optimized out>) at kernel/qcoreapplication.cpp:696
#19 0x00000000030a2b98 in QCoreApplication_processEvents () from /usr/lib64/libqt4intf.so.1
#20 0x000000000084553f in APPWAITMESSAGE (this=0x1120e0) at qtobject.inc:169
#21 0x000000000065a4bc in IDLE (WAIT=true, this=0x140130) at include/application.inc:315
#22 0x000000000065bf60 in HANDLEMESSAGE (this=0x140130) at include/application.inc:976
#23 0x000000000065c301 in RUNLOOP (this=0x140130) at include/application.inc:1086
#24 0x000000000084551e in APPRUN (ALOOP={Proc = {procedure (^pointer)} 0x7fffc7f8f000, Self = 0x140130}, this=0x1120e0) at qtobject.inc:151
#25 0x000000000065c2a8 in RUN (this=0x140130) at include/application.inc:1073
#26 0x000000000062cb6c in main () at lazarus.pp:104
(gdb) q
The program is running.  Exit anyway? (y or n) 


More information about the Qt mailing list