View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0020423 | Lazarus | Debugger | public | 2011-10-06 13:16 | 2011-10-07 09:14 |
Reporter | Felipe Monteiro de Carvalho | Assigned To | Felipe Monteiro de Carvalho | ||
Priority | normal | Severity | minor | Reproducibility | random |
Status | resolved | Resolution | fixed | ||
Fixed in Version | 0.9.31 (SVN) | ||||
Summary | 0020423: GetForegroundWindow crashes/freezes the IDE | ||||
Description | Recently I've been getting quite frequent debugger freezes and crashes. Seams like a regression. It happens rather randomly, but quite offen. I will post crash traces here. | ||||
Tags | No tags attached. | ||||
Fixed in Revision | 32725 | ||||
LazTarget | 0.99.0 | ||||
Widgetset | GTK 2 | ||||
Attached Files |
|
|
While debugging customdrawn, I don't remember doing anything special. One breakpoint was set, I clicked play to resume and crash. Program received signal SIGSEGV, Segmentation fault. 0x082770e5 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x4800037) at gtk2proc.inc:149 149 result := PGtkTypeObject(anobject)^.g_Class Missing debug package(s), you should install: GConf2-debug-2.28.1-1mdv2010.1.i586 ORBit2-debug-2.14.18-2mdv2010.1.i586 atk1.0-debug-1.30.0-1mdv2010.1.i586 cairo-debug-1.9.14-0.2mdv2010.1.i586 dbus-debug-1.2.24-1mdv2010.1.i586 expat-debug-2.0.1-12mdv2010.1.i586 fontconfig-debug-2.8.0-2mdv2010.1.i586 freetype2-debug-2.3.12-1.5plf2010.1.i586 gamin-debug-0.1.10-4mdv2010.1.i586 glib2.0-debug-2.24.1-1mdv2010.1.i586 glibc-debug-2.11.1-8.2mnb2.i586 gtk+2.0-debug-2.20.1-1mdv2010.1.i586 gvfs-debug-1.6.1-2mdv2010.1.i586 ia_ora-gnome-debug-1.0.24-1mdv2010.1.i586 libcanberra-debug-0.24-2mdv2010.1.i586 libogg-debug-1.2.0-1mdv2010.1.i586 libpng-debug-1.2.43-1.1mdv2010.1.i586 libtool-debug-2.2.6b-2mdv2010.1.i586 libvorbis-debug-1.3.1-1mdv2010.1.i586 libx11-debug-1.3.3-1mdv2010.1.i586 libxau-debug-1.0.5-2mdv2010.1.i586 libxcb-debug-1.6-1mdv2010.1.i586 libxcomposite-debug-0.4.1-1mdv2010.1.i586 libxcursor-debug-1.1.10-2mdv2010.1.i586 libxdamage-debug-1.1.2-1mdv2010.1.i586 libxdmcp-debug-1.0.3-2mdv2010.1.i586 libxext-debug-1.1.1-2mdv2010.1.i586 libxfixes-debug-4.0.4-1mdv2010.1.i586 libxi-debug-1.3-1mdv2010.1.i586 libxinerama-debug-1.1-1mdv2010.1.i586 libxml2-debug-2.7.7-1.2mdv2010.2.i586 libxrandr-debug-1.3.0-3mdv2010.1.i586 libxrender-debug-0.9.5-2mdv2010.1.i586 pango-debug-1.28.0-1mdv2010.1.i586 pcre-debug-8.02-1mdv2010.1.i586 pixman-debug-0.20.0-1mdv2010.1.i586 tdb-debug-1.2.1-1mdv2010.1.i586 udev-debug-153-5mnb2.i586 zlib-debug-1.2.3-15mdv2010.1.i586 (gdb) bt #0 0x082770e5 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x4800037) at gtk2proc.inc:149 0000001 0x08277a7d in GTKWIDGETISA (WIDGET=0x4800037, ATYPE=152413536) at gtk2proc.inc:421 0000002 0x081ddbbe in TGTK2WIDGETSET__SETFOREGROUNDWINDOW (HWND=75497527, this=<error reading variable>) at gtk2winapi.inc:8335 0000003 0x081b7d5f in SETFOREGROUNDWINDOW (HWND=75497527) at ./include/winapi.inc:903 0000004 0x0846ca8a in TDEBUGMANAGER__DEBUGGERCHANGESTATE (ADEBUGGER=0xb6a584d0, OLDSTATE=DSPAUSE, this=<error reading variable>) at debugmanager.pas:1070 0000005 0x0847bed7 in TDEBUGGER__DOSTATE (OLDSTATE=DSPAUSE, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:5832 0000006 0x08804321 in TGDBMIDEBUGGER__DOSTATE (OLDSTATE=DSPAUSE, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:5948 0000007 0x0847cb05 in TDEBUGGER__SETSTATE (AVALUE=DSRUN, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:6093 0000008 0x0880efaf in TGDBMIDEBUGGERCOMMAND__SETDEBUGGERSTATE (AVALUE=DSRUN, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:9413 0000009 0x08800384 in TGDBMIDEBUGGERCOMMANDEXECUTE__DOEXECUTE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:5024 0000010 0x08812ba0 in TGDBMIDEBUGGERCOMMAND__EXECUTE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:10448 0000011 0x08805499 in TGDBMIDEBUGGER__RUNQUEUE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6184 0000012 0x08805849 in TGDBMIDEBUGGER__QUEUECOMMAND (ACOMMAND=0xad568b20, FORCEQUEUE=false, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6305 0000013 0x08806455 in TGDBMIDEBUGGER__GDBRUN (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6562 0000014 0x088072fa in TGDBMIDEBUGGER__REQUESTCOMMAND (ACOMMAND=DCRUN, APARAMS=<incomplete type>, highAPARAMS=-1, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6971 0000015 0x0847c6d0 in TDEBUGGER__REQCMD (ACOMMAND=DCRUN, APARAMS=<incomplete type>, highAPARAMS=-1, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:5982 0000016 0x0847c78b in TDEBUGGER__RUN (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:5996 0000017 0x08470eb6 in TDEBUGMANAGER__RUNDEBUGGER (this=<error reading variable>) at debugmanager.pas:2383 0000018 0x0846bb12 in TDEBUGMANAGER__ONRUNTIMER (SENDER=0xb62d46e0, this=<error reading variable>) at debugmanager.pas:772 0000019 0x082ad865 in TCUSTOMTIMER__DOONTIMER (this=<error reading variable>) at customtimer.pas:181 0000020 0x082ad7cf in TCUSTOMTIMER__TIMER (this=<error reading variable>) at customtimer.pas:156 0000021 0x0828aa84 in GTKTIMERCB (DATA=0xad3c24b0) at gtk2callback.inc:2430 0000022 0xb78b546f in ?? () from /usr/lib/libglib-2.0.so.0 0000023 0xb78b4cbe in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 0000024 0xb78b89f8 in ?? () from /usr/lib/libglib-2.0.so.0 0000025 0xb78b8b9e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 0000026 0x081c8b65 in TGTK2WIDGETSET__APPPROCESSMESSAGES (this=<error reading variable>) at gtk2widgetset.inc:2397 0000027 0x080a11cc in TAPPLICATION__HANDLEMESSAGE (this=<error reading variable>) at ./include/application.inc:1264 0000028 0x080a161f in TAPPLICATION__RUNLOOP (this=<error reading variable>) at ./include/application.inc:1397 0000029 0x08101df3 in TWIDGETSET__APPRUN (ALOOP=0x80a15e0 <TAPPLICATION__RUNLOOP>, this=<error reading variable>) at ./include/interfacebase.inc:60 0000030 0x080a15da in TAPPLICATION__RUN (this=<error reading variable>) at ./include/application.inc:1385 0000031 0x0805e1a5 in main () at lazarus.pp:119 (gdb) quit A debugging session is active. Inferior 1 [process 19645] will be killed. |
|
Are you using 0.9.30 / 0.9.30.1 or 0.9.31 ? If you use 0.9.30, please upgrade to 0.9.30.1 as it already has various fixes for the debugger. If 0.9.31 then make sure you upgrade to the very latest. I just fixed some memory/access violations in r 32718 In either case: Can you recompile lazarus with the following defines: DBG_VERBOSE DBG_STATE DBGMI_QUEUE_DEBUG See also http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#Create_a_new_Report Then run lazarus with a logfile --debug-log=foo and submit the logfile together with the stacktrace, if it happens next time. -- As a note, this may be related to how fast you press the next F8/F9 (or whatever step/run you use). If so and if 0.9.31, it may be the issue I fixed in r32718 Also, does it happen, if you do not "hide ide windows on run"? |
|
Also since the crash occurs in SetForegroundWindow Please pay attention to the following things (as far as possible): - Any request/dialogs by the IDE. Such as "Exception encountered [continue/pause] This are dialogs that offer to continue running - When the debugger pauses (e.g hits breakpoint) what window was active? The debugged app? The IDE? A hint or other temporary window in the debugged ap? A completely different app? - Does that window still exist, at the time of continue (F9 / Run). Especially, if you stepped F7/F8 before resuming run. |
|
> Are you using 0.9.30 / 0.9.30.1 or 0.9.31 ? I always use Lazarus svn, and I was in rev 32717 when I did this test. |
|
You seam to be correct about the freezes, they indeed might all be dialogs hidden behind the source editor. But I think this didnt happen before. |
|
Using svn 32719 I just got another crash: It was right after receiving an exception, I pressed play to continue and I got a crash: Program received signal SIGSEGV, Segmentation fault. 0x082770e5 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x46000c0) at gtk2proc.inc:149 149 result := PGtkTypeObject(anobject)^.g_Class Missing debug package(s), you should install: GConf2-debug-2.28.1-1mdv2010.1.i586 ORBit2-debug-2.14.18-2mdv2010.1.i586 atk1.0-debug-1.30.0-1mdv2010.1.i586 cairo-debug-1.9.14-0.2mdv2010.1.i586 dbus-debug-1.2.24-1mdv2010.1.i586 expat-debug-2.0.1-12mdv2010.1.i586 fontconfig-debug-2.8.0-2mdv2010.1.i586 freetype2-debug-2.3.12-1.5plf2010.1.i586 gamin-debug-0.1.10-4mdv2010.1.i586 glib2.0-debug-2.24.1-1mdv2010.1.i586 glibc-debug-2.11.1-8.2mnb2.i586 gtk+2.0-debug-2.20.1-1mdv2010.1.i586 gvfs-debug-1.6.1-2mdv2010.1.i586 ia_ora-gnome-debug-1.0.24-1mdv2010.1.i586 libcanberra-debug-0.24-2mdv2010.1.i586 libogg-debug-1.2.0-1mdv2010.1.i586 libpng-debug-1.2.43-1.1mdv2010.1.i586 libtool-debug-2.2.6b-2mdv2010.1.i586 libvorbis-debug-1.3.1-1mdv2010.1.i586 libx11-debug-1.3.3-1mdv2010.1.i586 libxau-debug-1.0.5-2mdv2010.1.i586 libxcb-debug-1.6-1mdv2010.1.i586 libxcomposite-debug-0.4.1-1mdv2010.1.i586 libxcursor-debug-1.1.10-2mdv2010.1.i586 libxdamage-debug-1.1.2-1mdv2010.1.i586 libxdmcp-debug-1.0.3-2mdv2010.1.i586 libxext-debug-1.1.1-2mdv2010.1.i586 libxfixes-debug-4.0.4-1mdv2010.1.i586 libxi-debug-1.3-1mdv2010.1.i586 libxinerama-debug-1.1-1mdv2010.1.i586 libxml2-debug-2.7.7-1.2mdv2010.2.i586 libxrandr-debug-1.3.0-3mdv2010.1.i586 libxrender-debug-0.9.5-2mdv2010.1.i586 pango-debug-1.28.0-1mdv2010.1.i586 pcre-debug-8.02-1mdv2010.1.i586 pixman-debug-0.20.0-1mdv2010.1.i586 tdb-debug-1.2.1-1mdv2010.1.i586 udev-debug-153-5mnb2.i586 zlib-debug-1.2.3-15mdv2010.1.i586 (gdb) bt #0 0x082770e5 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x46000c0) at gtk2proc.inc:149 0000001 0x08277a7d in GTKWIDGETISA (WIDGET=0x46000c0, ATYPE=152651104) at gtk2proc.inc:421 0000002 0x081ddbbe in TGTK2WIDGETSET__SETFOREGROUNDWINDOW (HWND=73400512, this=<error reading variable>) at gtk2winapi.inc:8335 0000003 0x081b7d5f in SETFOREGROUNDWINDOW (HWND=73400512) at ./include/winapi.inc:903 0000004 0x0846ed0a in TDEBUGMANAGER__DEBUGGERCHANGESTATE (ADEBUGGER=0xb6a58980, OLDSTATE=DSPAUSE, this=<error reading variable>) at debugmanager.pas:1073 0000005 0x0847e157 in TDEBUGGER__DOSTATE (OLDSTATE=DSPAUSE, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:5841 0000006 0x08806881 in TGDBMIDEBUGGER__DOSTATE (OLDSTATE=DSPAUSE, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:5985 0000007 0x0847ed85 in TDEBUGGER__SETSTATE (AVALUE=DSRUN, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:6102 0000008 0x0881153f in TGDBMIDEBUGGERCOMMAND__SETDEBUGGERSTATE (AVALUE=DSRUN, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:9455 0000009 0x08802804 in TGDBMIDEBUGGERCOMMANDEXECUTE__DOEXECUTE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:5051 0000010 0x08815130 in TGDBMIDEBUGGERCOMMAND__EXECUTE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:10490 0000011 0x088079f9 in TGDBMIDEBUGGER__RUNQUEUE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6221 0000012 0x08807da9 in TGDBMIDEBUGGER__QUEUECOMMAND (ACOMMAND=0xb66a8ca0, FORCEQUEUE=false, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6342 0000013 0x088089b5 in TGDBMIDEBUGGER__GDBRUN (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6599 0000014 0x0880985a in TGDBMIDEBUGGER__REQUESTCOMMAND (ACOMMAND=DCRUN, APARAMS=<incomplete type>, highAPARAMS=-1, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:7008 0000015 0x0847e950 in TDEBUGGER__REQCMD (ACOMMAND=DCRUN, APARAMS=<incomplete type>, highAPARAMS=-1, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:5991 0000016 0x0847ea0b in TDEBUGGER__RUN (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:6005 0000017 0x08473136 in TDEBUGMANAGER__RUNDEBUGGER (this=<error reading variable>) at debugmanager.pas:2386 0000018 0x0846dd72 in TDEBUGMANAGER__ONRUNTIMER (SENDER=0xb62d46e0, this=<error reading variable>) at debugmanager.pas:772 0000019 0x082ad865 in TCUSTOMTIMER__DOONTIMER (this=<error reading variable>) at customtimer.pas:181 0000020 0x082ad7cf in TCUSTOMTIMER__TIMER (this=<error reading variable>) at customtimer.pas:156 0000021 0x0828aa84 in GTKTIMERCB (DATA=0xae5830f0) at gtk2callback.inc:2430 0000022 0xb78b546f in ?? () from /usr/lib/libglib-2.0.so.0 0000023 0xb78b4cbe in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 0000024 0xb78b89f8 in ?? () from /usr/lib/libglib-2.0.so.0 0000025 0xb78b8b9e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 0000026 0x081c8b65 in TGTK2WIDGETSET__APPPROCESSMESSAGES (this=<error reading variable>) at gtk2widgetset.inc:2397 0000027 0x080a11cc in TAPPLICATION__HANDLEMESSAGE (this=<error reading variable>) at ./include/application.inc:1264 0000028 0x080a161f in TAPPLICATION__RUNLOOP (this=<error reading variable>) at ./include/application.inc:1397 0000029 0x08101df3 in TWIDGETSET__APPRUN (ALOOP=0x80a15e0 <TAPPLICATION__RUNLOOP>, this=<error reading variable>) at ./include/interfacebase.inc:60 0000030 0x080a15da in TAPPLICATION__RUN (this=<error reading variable>) at ./include/application.inc:1385 0000031 0x0805e1a5 in main () at lazarus.pp:119 |
|
2nd crash has same signature. Will need to find away, to see which window the handle belongs too, and why it fails when trying to set it to foreground again |
|
It happens so frequently that I can't even debug my app (got me 5 times in 5 minutes). I will try to check which revision broke it. |
|
With rev 32010 it also happens. |
|
> Also, does it happen, if you do not "hide ide windows on run"? I don't know what this is, but this seams to be an option. I don't use this option, my IDE windows are all visible |
2011-10-06 17:05
|
debug.txt (67,465 bytes)
Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env GCONF_TMPDIR=/tmp" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env GCONF_TMPDIR=/tmp" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env G_FILENAME_ENCODING=@locale" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env G_FILENAME_ENCODING=@locale" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env GPG_AGENT_INFO=/tmp/gpg-SCllcH/S.gpg-agent:1773:1" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env GPG_AGENT_INFO=/tmp/gpg-SCllcH/S.gpg-agent:1773:1" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env GS_LIB=/home/felipe/.fonts" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env GS_LIB=/home/felipe/.fonts" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env GTK_MODULES=canberra-gtk-module" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env GTK_MODULES=canberra-gtk-module" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env HISTCONTROL=ignoredups" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env HISTCONTROL=ignoredups" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env HISTSIZE=1000" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env HISTSIZE=1000" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env HOME=/home/felipe" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env HOME=/home/felipe" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env HOSTNAME=localhost" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env HOSTNAME=localhost" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env INPUTRC=/etc/inputrc" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env INPUTRC=/etc/inputrc" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env KDE_COLOR_DEBUG=1" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env KDE_COLOR_DEBUG=1" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env KDE_FULL_SESSION=true" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env KDE_FULL_SESSION=true" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env KDE_MULTIHEAD=false" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env KDE_MULTIHEAD=false" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env KDE_SESSION_UID=500" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env KDE_SESSION_UID=500" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env KDE_SESSION_VERSION=4" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env KDE_SESSION_VERSION=4" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env KONSOLE_DBUS_SERVICE=:1.30" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env KONSOLE_DBUS_SERVICE=:1.30" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env KONSOLE_DBUS_SESSION=/Sessions/3" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env KONSOLE_DBUS_SESSION=/Sessions/3" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LANG=en_GB.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LANG=en_GB.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LANGUAGE=en_GB.UTF-8:en_GB:en" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LANGUAGE=en_GB.UTF-8:en_GB:en" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_ADDRESS=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_ADDRESS=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_COLLATE=en_GB.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_COLLATE=en_GB.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_CTYPE=en_GB.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_CTYPE=en_GB.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_IDENTIFICATION=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_IDENTIFICATION=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_MEASUREMENT=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_MEASUREMENT=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_MESSAGES=en_GB.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_MESSAGES=en_GB.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_MONETARY=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_MONETARY=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_NAME=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_NAME=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_NUMERIC=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_NUMERIC=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_PAPER=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_PAPER=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_SOURCED=1" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_SOURCED=1" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_TELEPHONE=pl_PL.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_TELEPHONE=pl_PL.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LC_TIME=en_GB.UTF-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LC_TIME=en_GB.UTF-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LESSCHARSET=utf-8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LESSCHARSET=utf-8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LESSKEY=/etc/.less" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LESSKEY=/etc/.less" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LESS=-MM" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LESS=-MM" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LESSOPEN=|/usr/bin/lesspipe.sh %s" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LESSOPEN=|/usr/bin/lesspipe.sh %s" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LINES=44" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LINES=44" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LOGNAME=felipe" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LOGNAME=felipe" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.iso=01;31:*.jpg=01;35:*.jpeg=01;35:*.JPG=01;35:*.JPEG=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.ico=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.divx=01;35:*.xvid=01;35:*.3gp=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:*.mp2=00;36:*.mod=00;36:*.xm=00;36:*.s3m=00;36:*.it=00;36:*.wma=00;36:*~=47;30:*.bak=47;30:*.swp=47;30:*.bck=47;30:*.bk=47;30:*.old=47;30:*.tmp=47;30:*.save=47;30:*.rpmsave=47;30:*.rpmnew=47;30:" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.iso=01;31:*.jpg=01;35:*.jpeg=01;35:*.JPG=01;35:*.JPEG=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.ico=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.divx=01;35:*.xvid=01;35:*.3gp=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:*.mp2=00;36:*.mod=00;36:*.xm=00;36:*.s3m=00;36:*.it=00;36:*.wma=00;36:*~=47;30:*.bak=47;30:*.swp=47;30:*.bck=47;30:*.bk=47;30:*.old=47;30:*.tmp=47;30:*.save=47;30:*.rpmsave=47;30:*.rpmnew=47;30:" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env MAIL=/var/spool/mail/felipe" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env MAIL=/var/spool/mail/felipe" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env MALLOC_CHECK_=2" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env MALLOC_CHECK_=2" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env MDV_MENU_STYLE=mandriva" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env MDV_MENU_STYLE=mandriva" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env META_CLASS=desktop" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env META_CLASS=desktop" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env NLSPATH=/usr/share/locale/%l/%N" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env NLSPATH=/usr/share/locale/%l/%N" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/usr/lib/qt4/bin:/home/felipe/bin" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/usr/lib/qt4/bin:/home/felipe/bin" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env PROFILEHOME=" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env PROFILEHOME=" << TCmdLineDebugger.ReadLn "~"Setting environment variable \"PROFILEHOME\" to null value.\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env PWD=/home/felipe/Programas/lazarus" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env PWD=/home/felipe/Programas/lazarus" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env PYTHONDONTWRITEBYTECODE=1" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env PYTHONDONTWRITEBYTECODE=1" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env PYTHONPATH=/usr/lib/ooo/basis-link/program:/usr/lib/ooo/basis-link/program" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env PYTHONPATH=/usr/lib/ooo/basis-link/program:/usr/lib/ooo/basis-link/program" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env PYTHONSTARTUP=/etc/pythonrc.py" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env PYTHONSTARTUP=/etc/pythonrc.py" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env QT4DOCDIR=/usr/share/doc/qt4/doc" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env QT4DOCDIR=/usr/share/doc/qt4/doc" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env QTDIR=/usr/lib/qt4" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env QTDIR=/usr/lib/qt4" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env QTEST_COLORED=1" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env QTEST_COLORED=1" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env QTINC=/usr/lib/qt3/include" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env QTINC=/usr/lib/qt3/include" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env QTLIB=/usr/lib" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env QTLIB=/usr/lib" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env QT_PLUGIN_PATH=/home/felipe/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env QT_PLUGIN_PATH=/home/felipe/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env QT_XFT=0" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env QT_XFT=0" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env SESSION_MANAGER=local/localhost:@/tmp/.ICE-unix/2199,unix/localhost:/tmp/.ICE-unix/2199" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env SESSION_MANAGER=local/localhost:@/tmp/.ICE-unix/2199,unix/localhost:/tmp/.ICE-unix/2199" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env SHELL=/bin/bash" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env SHELL=/bin/bash" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env SHLVL=3" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env SHLVL=3" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env SSH_ASKPASS=/usr/lib/ssh/ssh-askpass" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env SSH_ASKPASS=/usr/lib/ssh/ssh-askpass" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env TERM=xterm" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env TERM=xterm" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env TMPDIR=/tmp/" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env TMPDIR=/tmp/" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env TMP=/tmp/" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env TMP=/tmp/" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env USER=felipe" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env USER=felipe" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env _=/usr/bin/gdb" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env _=/usr/bin/gdb" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env WINDOWID=44040220" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env WINDOWID=44040220" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env WINDOWPATH=8" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env WINDOWPATH=8" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env XCURSOR_THEME=default" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env XCURSOR_THEME=default" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env XDG_CONFIG_DIRS=/etc/xdg:/etc/xdg/kde4" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env XDG_CONFIG_DIRS=/etc/xdg:/etc/xdg/kde4" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env XDG_MENU_PREFIX=kde-" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env XDG_MENU_PREFIX=kde-" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env XDG_SESSION_COOKIE=209d528efc0e0d32f69a61de0000003d-1317887483.787093-45227082" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env XDG_SESSION_COOKIE=209d528efc0e0d32f69a61de0000003d-1317887483.787093-45227082" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env XDM_MANAGED=method=classic" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env XDM_MANAGED=method=classic" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerSimpleCommand: -gdb-set env XMODIFIERS=@im=none" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-gdb-set env XMODIFIERS=@im=none" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle [TDebugger.SetFileName] "/home/felipe/Programas/test/custdraw/custdraw" Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerCommandChangeFilename" State=Idle PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-file-exec-and-symbols "/home/felipe/Programas/test/custdraw/custdraw"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Idle DebuggerState: Setting to Stop, from Idle DebugEvent: Enter >> DoBeforeState << State=Stop DebugEvent: Exit >> DoBeforeState << DebugEvent: Enter >> DoState << State=Stop DebugEvent: Exit >> DoState << DebuggerState: Finished Stop [TMainIDE.DoRunProject] B TGDBMIDebugger [TMainIDE.DoRunProject] END Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=-1 : "TGDBMIDebuggerCommandStartDebugging: ContinueCommand= TGDBMIDebuggerCommandExecute: -exec-continue" State=Stop PauseWaitState=0 TGDBMIDebugger.StartDebugging WorkingDir="/home/felipe/Programas/test/custdraw/" >> TCmdLineDebugger.SendCmdLn "-environment-cd ." << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-environment-cd "/home/felipe/Programas/test/custdraw/"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-data-evaluate-expression FPC_THREADVAR_RELOCATE_PROC" << TCmdLineDebugger.ReadLn "^error,msg="No symbol \"FPC_THREADVAR_RELOCATE_PROC\" in current context."" TGDBMIDebugger.ProcessResult Error: ,msg="No symbol \"FPC_THREADVAR_RELOCATE_PROC\" in current context." << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "info functions FPC_CPUINIT" << TCmdLineDebugger.ReadLn "&"info functions FPC_CPUINIT\n"" [Debugger] Log output: &"info functions FPC_CPUINIT\n" << TCmdLineDebugger.ReadLn "~"All functions matching regular expression \"FPC_CPUINIT\":\n"" << TCmdLineDebugger.ReadLn "~"\n"" << TCmdLineDebugger.ReadLn "~"Non-debugging symbols:\n"" << TCmdLineDebugger.ReadLn "~"0x0805f150 SYSTEM_FPC_CPUINIT\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-exec-arguments " << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "set width 50000" << TCmdLineDebugger.ReadLn "&"set width 50000\n"" [Debugger] Log output: &"set width 50000\n" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Detaching after fork from child process 17286. >> TCmdLineDebugger.SendCmdLn "set inferior-tty /dev/pts/4" << TCmdLineDebugger.ReadLn "&"set inferior-tty /dev/pts/4\n"" [Debugger] Log output: &"set inferior-tty /dev/pts/4\n" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-gdb-set language pascal" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "info address main" << TCmdLineDebugger.ReadLn "&"info address main\n"" [Debugger] Log output: &"info address main\n" << TCmdLineDebugger.ReadLn "~"Symbol \"main\" is a function at address 0x805dd80.\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-insert -t *134602112" << TCmdLineDebugger.ReadLn "^done,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0805dd80",func="main",file="custdraw.lpr",fullname="/home/felipe/Programas/test/custdraw/custdraw.lpr",line="14",times="0",original-location="*134602112"}" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "ptype TObject" << TCmdLineDebugger.ReadLn "&"ptype TObject\n"" [Debugger] Log output: &"ptype TObject\n" << TCmdLineDebugger.ReadLn "~"type = ^TOBJECT = class \n"" << TCmdLineDebugger.ReadLn "~"end\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "ptype Exception" << TCmdLineDebugger.ReadLn "&"ptype Exception\n"" [Debugger] Log output: &"ptype Exception\n" << TCmdLineDebugger.ReadLn "~"type = EXCEPTION = class : public TOBJECT \n"" << TCmdLineDebugger.ReadLn "~" private\n"" << TCmdLineDebugger.ReadLn "~" FMESSAGE : ANSISTRING;\n"" << TCmdLineDebugger.ReadLn "~" FHELPCONTEXT : LONGINT;\n"" << TCmdLineDebugger.ReadLn "~"\n"" << TCmdLineDebugger.ReadLn "~" public\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATE (EXCEPTION, POINTER, ANSISTRING) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATEFMT (EXCEPTION, POINTER, ANSISTRING, unnamedtype, ONGINT, ) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATERES (EXCEPTION, POINTER, PSTRING) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATERESFMT (EXCEPTION, POINTER, PSTRING, unnamedtype, ONGINT, ) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATEHELP (EXCEPTION, POINTER, ANSISTRING, ONGINT, ) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATEFMTHELP (EXCEPTION, POINTER, ANSISTRING, unnamedtype, ONGINT7, ) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATERESHELP (EXCEPTION, POINTER, PSTRING, LONGINT) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~" constructor CREATERESFMTHELP (EXCEPTION, POINTER, PSTRING, unnamedtype, ONGINT7, ) : ^EXCEPTION;\n"" << TCmdLineDebugger.ReadLn "~"end\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "ptype Shortstring" << TCmdLineDebugger.ReadLn "&"ptype Shortstring\n"" [Debugger] Log output: &"ptype Shortstring\n" << TCmdLineDebugger.ReadLn "~"type = SHORTSTRING = record \n"" << TCmdLineDebugger.ReadLn "~" length : BYTE;\n"" << TCmdLineDebugger.ReadLn "~" st : array [1..255] of CHAR;\n"" << TCmdLineDebugger.ReadLn "~"end\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "ptype pointer" << TCmdLineDebugger.ReadLn "&"ptype pointer\n"" [Debugger] Log output: &"ptype pointer\n" << TCmdLineDebugger.ReadLn "~"type = ^POINTER\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "ptype byte" << TCmdLineDebugger.ReadLn "&"ptype byte\n"" [Debugger] Log output: &"ptype byte\n" << TCmdLineDebugger.ReadLn "~"type = BYTE\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "info address FPC_RAISEEXCEPTION" << TCmdLineDebugger.ReadLn "&"info address FPC_RAISEEXCEPTION\n"" [Debugger] Log output: &"info address FPC_RAISEEXCEPTION\n" << TCmdLineDebugger.ReadLn "~"Symbol \"FPC_RAISEEXCEPTION\" is at 0x806ce20 in a file compiled without debugging.\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-insert *134663712" << TCmdLineDebugger.ReadLn "^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x0806ce20",at="<fpc_raiseexception>",times="0",original-location="*134663712"}" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "info address FPC_BREAK_ERROR" << TCmdLineDebugger.ReadLn "&"info address FPC_BREAK_ERROR\n"" [Debugger] Log output: &"info address FPC_BREAK_ERROR\n" << TCmdLineDebugger.ReadLn "~"Symbol \"FPC_BREAK_ERROR\" is at 0x806fe80 in a file compiled without debugging.\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-insert *134676096" << TCmdLineDebugger.ReadLn "^done,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="0x0806fe80",at="<SYSTEM_HANDLEERRORADDRFRAME$LONGINT$POINTER$POINTER>",times="0",original-location="*134676096"}" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "info address FPC_RUNERROR" << TCmdLineDebugger.ReadLn "&"info address FPC_RUNERROR\n"" [Debugger] Log output: &"info address FPC_RUNERROR\n" << TCmdLineDebugger.ReadLn "~"Symbol \"FPC_RUNERROR\" is at 0x806ff80 in a file compiled without debugging.\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-insert *134676352" << TCmdLineDebugger.ReadLn "^done,bkpt={number="4",type="breakpoint",disp="keep",enabled="y",addr="0x0806ff80",at="<SYSTEM_RUNERROR$WORD>",times="0",original-location="*134676352"}" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "info file" << TCmdLineDebugger.ReadLn "&"info file\n"" [Debugger] Log output: &"info file\n" << TCmdLineDebugger.ReadLn "~"Symbols from \"/home/felipe/Programas/test/custdraw/custdraw\".\n"" << TCmdLineDebugger.ReadLn "~"Local exec file:\n"" << TCmdLineDebugger.ReadLn "~"\t`/home/felipe/Programas/test/custdraw/custdraw', file type elf32-i386.\n"" << TCmdLineDebugger.ReadLn "~"\tEntry point: 0x8332700\n"" << TCmdLineDebugger.ReadLn "~"\t0x080480f4 - 0x08048107 is .interp\n"" << TCmdLineDebugger.ReadLn "~"\t0x08048108 - 0x0804a450 is .hash\n"" << TCmdLineDebugger.ReadLn "~"\t0x0804a450 - 0x0804f0e0 is .dynsym\n"" << TCmdLineDebugger.ReadLn "~"\t0x0804f0e0 - 0x080561e6 is .dynstr\n"" << TCmdLineDebugger.ReadLn "~"\t0x080561e6 - 0x08056b78 is .gnu.version\n"" << TCmdLineDebugger.ReadLn "~"\t0x08056b78 - 0x08056bf8 is .gnu.version_r\n"" << TCmdLineDebugger.ReadLn "~"\t0x08056bf8 - 0x08056cb0 is .rel.dyn\n"" << TCmdLineDebugger.ReadLn "~"\t0x08056cb0 - 0x08059210 is .rel.plt\n"" << TCmdLineDebugger.ReadLn "~"\t0x08059210 - 0x0805921a is .init\n"" << TCmdLineDebugger.ReadLn "~"\t0x0805921c - 0x0805dcec is .plt\n"" << TCmdLineDebugger.ReadLn "~"\t0x0805dcf0 - 0x083327aa is .text\n"" << TCmdLineDebugger.ReadLn "~"\t0x083327aa - 0x083327af is .fini\n"" << TCmdLineDebugger.ReadLn "~"\t0x083327b0 - 0x083349ba is .rodata\n"" << TCmdLineDebugger.ReadLn "~"\t0x083349bc - 0x083349c0 is .eh_frame\n"" << TCmdLineDebugger.ReadLn "~"\t0x08335000 - 0x08335008 is .ctors\n"" << TCmdLineDebugger.ReadLn "~"\t0x08335008 - 0x08335010 is .dtors\n"" << TCmdLineDebugger.ReadLn "~"\t0x08335010 - 0x08335014 is .jcr\n"" << TCmdLineDebugger.ReadLn "~"\t0x08335014 - 0x08335134 is .dynamic\n"" << TCmdLineDebugger.ReadLn "~"\t0x08335134 - 0x083363f0 is .got.plt\n"" << TCmdLineDebugger.ReadLn "~"\t0x083363f0 - 0x0859827f is .data\n"" << TCmdLineDebugger.ReadLn "~"\t0x08598280 - 0x085bef58 is fpc.resources\n"" << TCmdLineDebugger.ReadLn "~"\t0x085bef60 - 0x085d9d74 is .bss\n"" << TCmdLineDebugger.ReadLn "~"\t0x085d9d74 - 0x085d9dc0 is fpc.reshandles\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " [Debugger] File type: elf32-i386 [Debugger] Entry point: 0x8332700 >> TCmdLineDebugger.SendCmdLn "-data-evaluate-expression sizeof(POINTER)" << TCmdLineDebugger.ReadLn "^done,value="4"" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-insert -f foo" << TCmdLineDebugger.ReadLn "&"Function \"foo\" not defined.\n"" [Debugger] Log output: &"Function \"foo\" not defined.\n" << TCmdLineDebugger.ReadLn "^done,bkpt={number="5",type="breakpoint",disp="keep",enabled="y",addr="<PENDING>",pending="foo",times="0",original-location="foo"}" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-delete 5" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-exec-run" << TCmdLineDebugger.ReadLn "=thread-group-created,id="17287"" [WARNING] Debugger: Unexpected async-record: =thread-group-created,id="17287" << TCmdLineDebugger.ReadLn "=thread-created,id="1",group-id="17287"" << TCmdLineDebugger.ReadLn "^running" << TCmdLineDebugger.ReadLn "*running,thread-id="all"" << TCmdLineDebugger.ReadLn "(gdb) " DebuggerState: Setting to Run, from Stop DebugEvent: Enter >> DoBeforeState << State=Run DebugEvent: Exit >> DoBeforeState << DebugEvent: Enter >> DoState << State=Run DebugEvent: Exit >> DoState << DebuggerState: Finished Run << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/ld-linux.so.2",target-name="/lib/ld-linux.so.2",host-name="/lib/ld-linux.so.2",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/i686/libpthread.so.0",target-name="/lib/i686/libpthread.so.0",host-name="/lib/i686/libpthread.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libX11.so.6",target-name="/usr/lib/libX11.so.6",host-name="/usr/lib/libX11.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libgdk_pixbuf-2.0.so.0",target-name="/usr/lib/libgdk_pixbuf-2.0.so.0",host-name="/usr/lib/libgdk_pixbuf-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libgtk-x11-2.0.so.0",target-name="/usr/lib/libgtk-x11-2.0.so.0",host-name="/usr/lib/libgtk-x11-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libgdk-x11-2.0.so.0",target-name="/usr/lib/libgdk-x11-2.0.so.0",host-name="/usr/lib/libgdk-x11-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libgobject-2.0.so.0",target-name="/usr/lib/libgobject-2.0.so.0",host-name="/usr/lib/libgobject-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libglib-2.0.so.0",target-name="/usr/lib/libglib-2.0.so.0",host-name="/usr/lib/libglib-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libgthread-2.0.so.0",target-name="/usr/lib/libgthread-2.0.so.0",host-name="/usr/lib/libgthread-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libgmodule-2.0.so.0",target-name="/usr/lib/libgmodule-2.0.so.0",host-name="/usr/lib/libgmodule-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libpango-1.0.so.0",target-name="/usr/lib/libpango-1.0.so.0",host-name="/usr/lib/libpango-1.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libatk-1.0.so.0",target-name="/usr/lib/libatk-1.0.so.0",host-name="/usr/lib/libatk-1.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libcairo.so.2",target-name="/usr/lib/libcairo.so.2",host-name="/usr/lib/libcairo.so.2",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/libdl.so.2",target-name="/lib/libdl.so.2",host-name="/lib/libdl.so.2",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/i686/libc.so.6",target-name="/lib/i686/libc.so.6",host-name="/lib/i686/libc.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libxcb.so.1",target-name="/usr/lib/libxcb.so.1",host-name="/usr/lib/libxcb.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libgio-2.0.so.0",target-name="/usr/lib/libgio-2.0.so.0",host-name="/usr/lib/libgio-2.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/i686/libm.so.6",target-name="/lib/i686/libm.so.6",host-name="/lib/i686/libm.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libpangocairo-1.0.so.0",target-name="/usr/lib/libpangocairo-1.0.so.0",host-name="/usr/lib/libpangocairo-1.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXfixes.so.3",target-name="/usr/lib/libXfixes.so.3",host-name="/usr/lib/libXfixes.so.3",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libpangoft2-1.0.so.0",target-name="/usr/lib/libpangoft2-1.0.so.0",host-name="/usr/lib/libpangoft2-1.0.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libfontconfig.so.1",target-name="/usr/lib/libfontconfig.so.1",host-name="/usr/lib/libfontconfig.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXinerama.so.1",target-name="/usr/lib/libXinerama.so.1",host-name="/usr/lib/libXinerama.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXi.so.6",target-name="/usr/lib/libXi.so.6",host-name="/usr/lib/libXi.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXrandr.so.2",target-name="/usr/lib/libXrandr.so.2",host-name="/usr/lib/libXrandr.so.2",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXcursor.so.1",target-name="/usr/lib/libXcursor.so.1",host-name="/usr/lib/libXcursor.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXcomposite.so.1",target-name="/usr/lib/libXcomposite.so.1",host-name="/usr/lib/libXcomposite.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXext.so.6",target-name="/usr/lib/libXext.so.6",host-name="/usr/lib/libXext.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXdamage.so.1",target-name="/usr/lib/libXdamage.so.1",host-name="/usr/lib/libXdamage.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXrender.so.1",target-name="/usr/lib/libXrender.so.1",host-name="/usr/lib/libXrender.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/libpcre.so.0",target-name="/lib/libpcre.so.0",host-name="/lib/libpcre.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/i686/librt.so.1",target-name="/lib/i686/librt.so.1",host-name="/lib/i686/librt.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libpixman-1.so.0",target-name="/usr/lib/libpixman-1.so.0",host-name="/usr/lib/libpixman-1.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libfreetype.so.6",target-name="/usr/lib/libfreetype.so.6",host-name="/usr/lib/libfreetype.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libpng12.so.0",target-name="/usr/lib/libpng12.so.0",host-name="/usr/lib/libpng12.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/libz.so.1",target-name="/lib/libz.so.1",host-name="/lib/libz.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXau.so.6",target-name="/usr/lib/libXau.so.6",host-name="/usr/lib/libXau.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libXdmcp.so.6",target-name="/usr/lib/libXdmcp.so.6",host-name="/usr/lib/libXdmcp.so.6",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/libresolv.so.2",target-name="/lib/libresolv.so.2",host-name="/lib/libresolv.so.2",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libxml2.so.2",target-name="/usr/lib/libxml2.so.2",host-name="/usr/lib/libxml2.so.2",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "~"[Thread debugging using libthread_db enabled]\n"" [Debugger] Console output: ~"[Thread debugging using libthread_db enabled]\n" << TCmdLineDebugger.ReadLn "*stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x0805dd80",func="main",args=[],file="custdraw.lpr",fullname="/home/felipe/Programas/test/custdraw/custdraw.lpr",line="14"},thread-id="1",stopped-threads="all",core="1"" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "info program" << TCmdLineDebugger.ReadLn "&"info program\n"" [Debugger] Log output: &"info program\n" << TCmdLineDebugger.ReadLn "~"\tUsing the running image of child Thread 0xb714c6c0 (LWP 17287).\n"" << TCmdLineDebugger.ReadLn "~"Program stopped at 0x805dd80.\n"" << TCmdLineDebugger.ReadLn "~"It stopped at a breakpoint that has since been deleted.\n"" << TCmdLineDebugger.ReadLn "~"Type \"info stack\" or \"info registers\" for more information.\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " [Debugger] Target PID: 17287 DebuggerState: Setting to Init, from Run DebugEvent: Enter >> DoBeforeState << State=Init DebugEvent: Exit >> DoBeforeState << Queueing (Recurse-Count=1) at pos=0 cnt=0 State=Init Lock=1 Forced=False Prior=10: "TGDBMIDebuggerCommandBreakInsert: Source=/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas, Line=2606, Enabled=True" DebugEvent: Enter >> DoState << State=Init Queueing (Recurse-Count=1) at pos=0 cnt=1 State=Init Lock=1 Forced=False Prior=100: "TGDBMIDebuggerCommandLineSymbolInfo: Source=/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas" DebugEvent: Exit >> DoState << DebuggerState: Finished Init Queueing (Recurse-Count=1) at pos=2 cnt=2 State=Init Lock=1 Forced=False Prior=0: "TGDBMIDebuggerCommandExecute: -exec-continue" Exec done Executing (Recurse-Count=0) queued= 2 CmdPrior=100 CmdMinRunLvl=-1 : "TGDBMIDebuggerCommandLineSymbolInfo: Source=/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas" State=Init PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-symbol-list-lines /home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas" << TCmdLineDebugger.ReadLn "^done,lines=[{pc="0x082e1670",line="705"},{pc="0x082e1676",line="706"},{pc="0x082e167b",line="707"},{pc="0x082e167e",line="706"},{pc="0x082e1683",line="707"},{pc="0x082e1686",line="706"},{pc="0x082e16" ..(47153).. "2",line="0"},{pc="0x082e8d60",line="3077"},{pc="0x082e8d6f",line="3079"},{pc="0x082e8d73",line="0"}]" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Executing (Recurse-Count=0) queued= 1 CmdPrior=10 CmdMinRunLvl=-1 : "TGDBMIDebuggerCommandBreakInsert: Source=/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas, Line=2606, Enabled=True" State=Init PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "info line "/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas":2606" << TCmdLineDebugger.ReadLn "&"info line \"/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas\":2606\n"" [Debugger] Log output: &"info line \"/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas\":2606\n" << TCmdLineDebugger.ReadLn "~"Line 2606 of \"customdrawnextras.pas\" starts at address 0x82e745e <ADDPAGE+110> and ends at 0x82e7492 <ADDPAGE+162>.\n"" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-insert -f customdrawnextras.pas:2606" << TCmdLineDebugger.ReadLn "^done,bkpt={number="6",type="breakpoint",disp="keep",enabled="y",addr="0x082e745e",func="ADDPAGE",file="customdrawnextras.pas",fullname="/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas",line="2606",times="0",original-location="customdrawnextras.pas:2606"}" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-break-enable 6" << TCmdLineDebugger.ReadLn "^done" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=0 : "TGDBMIDebuggerCommandExecute: -exec-continue" State=Init PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-exec-continue" << TCmdLineDebugger.ReadLn "^running" << TCmdLineDebugger.ReadLn "*running,thread-id="all"" << TCmdLineDebugger.ReadLn "(gdb) " DebuggerState: Setting to Run, from Init DebugEvent: Enter >> DoBeforeState << State=Run DebugEvent: Exit >> DoBeforeState << DebugEvent: Enter >> DoState << State=Run DebugEvent: Exit >> DoState << DebuggerState: Finished Run << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/gconv/UTF-16.so",target-name="/usr/lib/gconv/UTF-16.so",host-name="/usr/lib/gconv/UTF-16.so",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/lib/libnss_files.so.2",target-name="/lib/libnss_files.so.2",host-name="/lib/libnss_files.so.2",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so",target-name="/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so",host-name="/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libcanberra-gtk.so.0",target-name="/usr/lib/libcanberra-gtk.so.0",host-name="/usr/lib/libcanberra-gtk.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libcanberra.so.0",target-name="/usr/lib/libcanberra.so.0",host-name="/usr/lib/libcanberra.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libvorbisfile.so.3",target-name="/usr/lib/libvorbisfile.so.3",host-name="/usr/lib/libvorbisfile.so.3",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libtdb.so.1",target-name="/usr/lib/libtdb.so.1",host-name="/usr/lib/libtdb.so.1",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libltdl.so.7",target-name="/usr/lib/libltdl.so.7",host-name="/usr/lib/libltdl.so.7",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libvorbis.so.0",target-name="/usr/lib/libvorbis.so.0",host-name="/usr/lib/libvorbis.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/libogg.so.0",target-name="/usr/lib/libogg.so.0",host-name="/usr/lib/libogg.so.0",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/gtk-2.0/2.10.0/engines/libia_ora.so",target-name="/usr/lib/gtk-2.0/2.10.0/engines/libia_ora.so",host-name="/usr/lib/gtk-2.0/2.10.0/engines/libia_ora.so",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "=library-loaded,id="/usr/lib/pango/1.6.0/modules/pango-basic-fc.so",target-name="/usr/lib/pango/1.6.0/modules/pango-basic-fc.so",host-name="/usr/lib/pango/1.6.0/modules/pango-basic-fc.so",symbols-loaded="0"" << TCmdLineDebugger.ReadLn "*stopped,reason="breakpoint-hit",disp="keep",bkptno="6",frame={addr="0x082e745e",func="ADDPAGE",args=[{name="this",value="0xb7149920"},{name="S",value="0x834443c 'test'"}],file="customdrawnextras.pas"" ..(95).. "ponents/customdrawn/customdrawnextras.pas",line="2606"},thread-id="1",stopped-threads="all",core="1"" << TCmdLineDebugger.ReadLn "(gdb) " DebuggerState: Setting to Pause, from Run DebugEvent: Enter >> DoBeforeState << State=Pause DebugEvent: Exit >> DoBeforeState << DebugEvent: Enter >> DoState << State=Pause Queueing (Recurse-Count=1) at pos=0 cnt=0 State=Pause Lock=0 Forced=True Prior=5: "TGDBMIDebuggerCommandThreads" DebugEvent: Exit >> DoState << TGDBMIDebugger.UnLockCommandProcessing: Execute RunQueue Leaving Queue with count: 1 Recurse-Count=1 State=Pause TGDBMIDebugger.UnLockCommandProcessing: Finished RunQueue DebuggerState: Finished Pause Exec done Executing (Recurse-Count=0) queued= 0 CmdPrior=5 CmdMinRunLvl=0 : "TGDBMIDebuggerCommandThreads" State=Pause PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-thread-info" << TCmdLineDebugger.ReadLn "^done,threads=[{id="1",target-id="Thread 0xb714c6c0 (LWP 17287)",frame={level="0",addr="0x082e745e",func="ADDPAGE",args=[{name="this",value="0xb7149920"},{name="S",value="0x834443c 'test'"}],file="cus" ..(118).. "nts/customdrawn/customdrawnextras.pas",line="2606"},state="stopped",core="1"}],current-thread-id="1"" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Pause Executing (Recurse-Count=0) queued= 0 CmdPrior=2 CmdMinRunLvl=-1 : "TGDBMIDebuggerCommandStackDepth:" State=Pause PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-stack-info-depth" << TCmdLineDebugger.ReadLn "^done,depth="7"" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Pause Executing (Recurse-Count=0) queued= 0 CmdPrior=2 CmdMinRunLvl=-1 : "TGDBMIDebuggerCommandStackFrames" State=Pause PauseWaitState=0 Callstach.Frames A StartIdx=0 EndIdx=4 Callstach.Frames B StartIdx=0 EndIdx=4 >> TCmdLineDebugger.SendCmdLn "-stack-list-arguments 1 0 4" << TCmdLineDebugger.ReadLn "^done,stack-args=[frame={level="0",args=[{name="this",value="0xb7149920"},{name="S",value="0x834443c 'test'"}]},frame={level="1",args=[{name="SENDER",value="0xb71486c0"},{name="this",value="<error rea" ..(247).. "WNER",value="0xb710c2e0"},{name="vmt",value="0x1"},{name="this",value="<error reading variable>"}]}]" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-stack-list-frames 0 4" << TCmdLineDebugger.ReadLn "^done,stack=[frame={level="0",addr="0x082e745e",func="ADDPAGE",file="customdrawnextras.pas",fullname="/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas",line="2606"},frame={l" ..(627).. "e/customform.inc",fullname="/home/felipe/Programas/lazarus/lcl/include/customform.inc",line="2844"}]" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Pause Executing (Recurse-Count=0) queued= 0 CmdPrior=1 CmdMinRunLvl=-1 : "TGDBMIDebuggerCommandLocals:" State=Pause PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-stack-list-arguments 1 0 0" << TCmdLineDebugger.ReadLn "^done,stack-args=[frame={level="0",args=[{name="this",value="0xb7149920"},{name="S",value="0x834443c 'test'"}]}]" << TCmdLineDebugger.ReadLn "(gdb) " >> TCmdLineDebugger.SendCmdLn "-stack-list-locals 1" << TCmdLineDebugger.ReadLn "^done,locals=[{name="NEWPAGE",value="0xb7149c90"}]" << TCmdLineDebugger.ReadLn "(gdb) " Exec done Leaving Queue with count: 0 Recurse-Count=0 State=Pause [TMainIDE.DoRunProject] A [TMainIDE.DoRunProject] B TGDBMIDebugger [TMainIDE.DoRunProject] END Executing (Recurse-Count=0) queued= 0 CmdPrior=0 CmdMinRunLvl=0 : "TGDBMIDebuggerCommandExecute: -exec-continue" State=Pause PauseWaitState=0 >> TCmdLineDebugger.SendCmdLn "-exec-continue" << TCmdLineDebugger.ReadLn "^running" << TCmdLineDebugger.ReadLn "*running,thread-id="1"" << TCmdLineDebugger.ReadLn "(gdb) " DebuggerState: Setting to Run, from Pause DebugEvent: Enter >> DoBeforeState << State=Run DebugEvent: Exit >> DoBeforeState << INFO: TDBGDisassembler.Clear: map had count=0 DebugEvent: Enter >> DoState << State=Run Program received signal SIGSEGV, Segmentation fault. 0x082770e5 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x2600068) at gtk2proc.inc:149 149 result := PGtkTypeObject(anobject)^.g_Class Missing debug package(s), you should install: GConf2-debug-2.28.1-1mdv2010.1.i586 ORBit2-debug-2.14.18-2mdv2010.1.i586 atk1.0-debug-1.30.0-1mdv2010.1.i586 cairo-debug-1.9.14-0.2mdv2010.1.i586 dbus-debug-1.2.24-1mdv2010.1.i586 expat-debug-2.0.1-12mdv2010.1.i586 fontconfig-debug-2.8.0-2mdv2010.1.i586 freetype2-debug-2.3.12-1.5plf2010.1.i586 gamin-debug-0.1.10-4mdv2010.1.i586 glib2.0-debug-2.24.1-1mdv2010.1.i586 glibc-debug-2.11.1-8.2mnb2.i586 gtk+2.0-debug-2.20.1-1mdv2010.1.i586 gvfs-debug-1.6.1-2mdv2010.1.i586 ia_ora-gnome-debug-1.0.24-1mdv2010.1.i586 libcanberra-debug-0.24-2mdv2010.1.i586 libogg-debug-1.2.0-1mdv2010.1.i586 libpng-debug-1.2.43-1.1mdv2010.1.i586 libtool-debug-2.2.6b-2mdv2010.1.i586 libvorbis-debug-1.3.1-1mdv2010.1.i586 libx11-debug-1.3.3-1mdv2010.1.i586 libxau-debug-1.0.5-2mdv2010.1.i586 libxcb-debug-1.6-1mdv2010.1.i586 libxcomposite-debug-0.4.1-1mdv2010.1.i586 libxcursor-debug-1.1.10-2mdv2010.1.i586 libxdamage-debug-1.1.2-1mdv2010.1.i586 libxdmcp-debug-1.0.3-2mdv2010.1.i586 libxext-debug-1.1.1-2mdv2010.1.i586 libxfixes-debug-4.0.4-1mdv2010.1.i586 libxi-debug-1.3-1mdv2010.1.i586 libxinerama-debug-1.1-1mdv2010.1.i586 libxml2-debug-2.7.7-1.2mdv2010.2.i586 libxrandr-debug-1.3.0-3mdv2010.1.i586 libxrender-debug-0.9.5-2mdv2010.1.i586 pango-debug-1.28.0-1mdv2010.1.i586 pcre-debug-8.02-1mdv2010.1.i586 pixman-debug-0.20.0-1mdv2010.1.i586 tdb-debug-1.2.1-1mdv2010.1.i586 udev-debug-153-5mnb2.i586 zlib-debug-1.2.3-15mdv2010.1.i586 (gdb) bt #0 0x082770e5 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x2600068) at gtk2proc.inc:149 #1 0x08277a7d in GTKWIDGETISA (WIDGET=0x2600068, ATYPE=152712400) at gtk2proc.inc:421 #2 0x081ddbbe in TGTK2WIDGETSET__SETFOREGROUNDWINDOW (HWND=39845992, this=<error reading variable>) at gtk2winapi.inc:8335 #3 0x081b7d5f in SETFOREGROUNDWINDOW (HWND=39845992) at ./include/winapi.inc:903 #4 0x0846ed0a in TDEBUGMANAGER__DEBUGGERCHANGESTATE (ADEBUGGER=0xb6a58660, OLDSTATE=DSPAUSE, this=<error reading variable>) at debugmanager.pas:1073 #5 0x0847e1da in TDEBUGGER__DOSTATE (OLDSTATE=DSPAUSE, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:5841 #6 0x08808121 in TGDBMIDEBUGGER__DOSTATE (OLDSTATE=DSPAUSE, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:5985 #7 0x0847ee7b in TDEBUGGER__SETSTATE (AVALUE=DSRUN, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:6102 #8 0x088132cf in TGDBMIDEBUGGERCOMMAND__SETDEBUGGERSTATE (AVALUE=DSRUN, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:9455 #9 0x08803f84 in TGDBMIDEBUGGERCOMMANDEXECUTE__DOEXECUTE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:5051 #10 0x08816f80 in TGDBMIDEBUGGERCOMMAND__EXECUTE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:10490 #11 0x08809435 in TGDBMIDEBUGGER__RUNQUEUE (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6221 #12 0x08809aae in TGDBMIDEBUGGER__QUEUECOMMAND (ACOMMAND=0xad373940, FORCEQUEUE=false, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6342 #13 0x0880a6f5 in TGDBMIDEBUGGER__GDBRUN (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:6599 #14 0x0880b5ea in TGDBMIDEBUGGER__REQUESTCOMMAND (ACOMMAND=DCRUN, APARAMS=<incomplete type>, highAPARAMS=-1, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/gdbmidebugger.pp:7008 #15 0x0847e9f0 in TDEBUGGER__REQCMD (ACOMMAND=DCRUN, APARAMS=<incomplete type>, highAPARAMS=-1, this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:5991 #16 0x0847eaab in TDEBUGGER__RUN (this=<error reading variable>) at /home/felipe/Programas/lazarus/debugger/debugger.pp:6005 #17 0x08473136 in TDEBUGMANAGER__RUNDEBUGGER (this=<error reading variable>) at debugmanager.pas:2386 #18 0x0846dd72 in TDEBUGMANAGER__ONRUNTIMER (SENDER=0xb62d46e0, this=<error reading variable>) at debugmanager.pas:772 #19 0x082ad865 in TCUSTOMTIMER__DOONTIMER (this=<error reading variable>) at customtimer.pas:181 #20 0x082ad7cf in TCUSTOMTIMER__TIMER (this=<error reading variable>) at customtimer.pas:156 #21 0x0828aa84 in GTKTIMERCB (DATA=0xae585270) at gtk2callback.inc:2430 #22 0xb78b546f in ?? () from /usr/lib/libglib-2.0.so.0 #23 0xb78b4cbe in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #24 0xb78b89f8 in ?? () from /usr/lib/libglib-2.0.so.0 #25 0xb78b8b9e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #26 0x081c8b65 in TGTK2WIDGETSET__APPPROCESSMESSAGES (this=<error reading variable>) at gtk2widgetset.inc:2397 #27 0x080a11cc in TAPPLICATION__HANDLEMESSAGE (this=<error reading variable>) at ./include/application.inc:1264 #28 0x080a161f in TAPPLICATION__RUNLOOP (this=<error reading variable>) at ./include/application.inc:1397 #29 0x08101df3 in TWIDGETSET__APPRUN (ALOOP=0x80a15e0 <TAPPLICATION__RUNLOOP>, this=<error reading variable>) at ./include/interfacebase.inc:60 #30 0x080a15da in TAPPLICATION__RUN (this=<error reading variable>) at ./include/application.inc:1385 #31 0x0805e1a5 in main () at lazarus.pp:119 (gdb) |
|
> Can you recompile lazarus with the following defines: > DBG_VERBOSE > DBG_STATE > DBGMI_QUEUE_DEBUG Is the debug.txt file attached what you wanted? |
|
Attached file is ok, unfortunately no new info in this case. yes, of course "hide ide windows on run" was 3 lines above you crash, my bad. ide\debugmanager.pas line 1085 FPrevShownWindow := GetForegroundWindow; We have to find out, which window it actually gets. And why setting it back fails. I did not find a way toi get the title, but I saw function GetWindowRect(Handle : hwnd; var Rect : TRect): Integer; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} function GetWindowSize(Handle : hwnd; var Width, Height: integer): boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} Maybe they work, and maybe the coordinates are good enough to identify the window... |
|
I wrote this code: else if (OldState in [dsRun]) then begin if not FStepping then begin FPrevShownWindow := GetForegroundWindow; GetWindowRect(FPrevShownWindow, lRect); WriteLn(Format('FPrevShownWindow := GetForegroundWindow lRect=%d,%d,%d,%d', [lRect.Left, lRect.Top, lRect.Right, lRect.Bottom])); But it does not seam to write anything... |
|
Now I wrote: begin WriteLn(Format('### [TDebugManager.DebuggerChangeState] FPrevShownWindow = %x', [FPrevShownWindow])); if Destroying or (MainIDE=nil) or (MainIDE.ToolStatus=itExiting) then begin UnlockDialogs; exit; And I get: ### [TDebugManager.DebuggerChangeState] FPrevShownWindow = 0 [Debugger] Log output: &"info line \"/home/felipe/Programas/lazarus/components/customdrawn/customdrawnextras.pas\":2611\n" ### [TDebugManager.DebuggerChangeState] FPrevShownWindow = 0 ### [TDebugManager.DebuggerChangeState] FPrevShownWindow = 0 Program received signal SIGSEGV, Segmentation fault. 0x0826b243 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x2a0001c) at ./gtk2/gtk2proc.inc:149 149 result := PGtkTypeObject(anobject)^.g_Class Missing debug package(s), you should install: GConf2-debug-2.28.1-1mdv2010.1.i586 ORBit2-debug-2.14.18-2mdv2010.1.i586 atk1.0-debug-1.30.0-1mdv2010.1.i586 cairo-debug-1.9.14-0.2mdv2010.1.i586 dbus-debug-1.2.24-1mdv2010.1.i586 expat-debug-2.0.1-12mdv2010.1.i586 fontconfig-debug-2.8.0-2mdv2010.1.i586 freetype2-debug-2.3.12-1.5plf2010.1.i586 gamin-debug-0.1.10-4mdv2010.1.i586 glib2.0-debug-2.24.1-1mdv2010.1.i586 glibc-debug-2.11.1-8.2mnb2.i586 gtk+2.0-debug-2.20.1-1mdv2010.1.i586 gvfs-debug-1.6.1-2mdv2010.1.i586 ia_ora-gnome-debug-1.0.24-1mdv2010.1.i586 libcanberra-debug-0.24-2mdv2010.1.i586 libogg-debug-1.2.0-1mdv2010.1.i586 libpng-debug-1.2.43-1.1mdv2010.1.i586 libtool-debug-2.2.6b-2mdv2010.1.i586 libvorbis-debug-1.3.1-1mdv2010.1.i586 libx11-debug-1.3.3-1mdv2010.1.i586 libxau-debug-1.0.5-2mdv2010.1.i586 libxcb-debug-1.6-1mdv2010.1.i586 libxcomposite-debug-0.4.1-1mdv2010.1.i586 libxcursor-debug-1.1.10-2mdv2010.1.i586 libxdamage-debug-1.1.2-1mdv2010.1.i586 libxdmcp-debug-1.0.3-2mdv2010.1.i586 libxext-debug-1.1.1-2mdv2010.1.i586 libxfixes-debug-4.0.4-1mdv2010.1.i586 libxi-debug-1.3-1mdv2010.1.i586 libxinerama-debug-1.1-1mdv2010.1.i586 libxml2-debug-2.7.7-1.2mdv2010.2.i586 libxrandr-debug-1.3.0-3mdv2010.1.i586 libxrender-debug-0.9.5-2mdv2010.1.i586 pango-debug-1.28.0-1mdv2010.1.i586 pcre-debug-8.02-1mdv2010.1.i586 pixman-debug-0.20.0-1mdv2010.1.i586 tdb-debug-1.2.1-1mdv2010.1.i586 udev-debug-153-5mnb2.i586 zlib-debug-1.2.3-15mdv2010.1.i586 |
|
It crashes in GetWindowRect =( Detailed info: ### [TDebugManager.DebuggerChangeState] FPrevShownWindow = 0 ### [TDebugManager.DebuggerChangeState] FPrevShownWindow = 0 Before GetForegroundWindow FPrevShownWindow=0 After GetForegroundWindow FPrevShownWindow=26000C0 Program received signal SIGSEGV, Segmentation fault. 0x0826b243 in GTK_OBJECT_GET_CLASS (ANOBJECT=0x26000c0) at ./gtk2/gtk2proc.inc:149 149 result := PGtkTypeObject(anobject)^.g_Class |
|
function TGtk2WidgetSet.GetForegroundWindow: HWND; begin Result:=0; {$IFDEF HASX} Result:=X11GetActiveWindow; {$ENDIF} end; function TGtk2WidgetSet.X11GetActivewindow: HWND; var Display: PDisplay; RootWin: TWindow; ScreenNum: Integer; WMAtom: TAtom; ActualTypeReturn: TAtom; ActualFormatReturn: LongInt; NItemsReturn, BytesAfterReturn: Cardinal; Ptr: PByte; screen: PGdkScreen; Valid: Boolean; begin screen:=gdk_screen_get_default; Display := gdk_x11_get_default_xdisplay; if Display = nil then exit; ScreenNum := gdk_screen_get_number(screen); RootWin := gdk_x11_get_default_root_xwindow; WMAtom := XInternAtom(Display,'_NET_ACTIVE_WINDOW', False); Valid:=XGetWindowProperty(Display, RootWin, WMAtom, 0, 1, False, AnyPropertyType, @ActualTypeReturn, @ActualFormatReturn, @NItemsReturn, @BytesAfterReturn, @Ptr)=0; if Valid then try if (ActualTypeReturn = None) or (ActualFormatReturn <> 32) or not Assigned(Ptr) then Valid := False; if Valid then Result := PCardinal(Ptr)^; finally if Assigned(Ptr) then XFree(Ptr); end; end; |
|
No return value in TGtk2WidgetSet.X11GetActivewindow if things go wrong!? |
|
This routine has this bug, but the bug is not what causes the problem: TGtk2WidgetSet.X11GetActivewindow TGtk2WidgetSet.X11GetActivewindow Result=2600068 After GetForegroundWindow FPrevShownWindow=2600068 I fixed the routine and it still return the same. It looks to me that you cannot use the result from GetForegroundWindow for anything, it is completely invalid in LCL-Gtk2 GetForegroundWindow returns something from X11, other routines expect a PGdkWindow function TGtk2WidgetSet.SetForegroundWindow(hWnd : HWND): boolean; var {$IFDEF VerboseFocus} LCLObject: TControl; {$ENDIF} GdkWindow: PGdkWindow; AForm: TCustomForm; begin try {$IFDEF VerboseFocus} DbgOut('TGtk2WidgetSet.SetForegroundWindow hWnd=',DbgS(hWnd)); LCLObject:=TControl(GetLCLObject(Pointer(hWnd))); if LCLObject<>nil then DebugLn(' LCLObject=',LCLObject.Name,':',LCLObject.ClassName) else DebugLn(' LCLObject=nil'); {$ENDIF} Result := GtkWidgetIsA(PGtkWidget(hWnd),GTK_TYPE_WINDOW); if Result then begin GdkWindow := GetControlWindow(PgtkWidget(hwnd)); if GdkWindow <> nil then begin if not gdk_window_is_visible(GdkWindow) then begin Result := False; Exit; end; AForm := TCustomForm(GetLCLObject(PgtkWidget(hwnd))); if (AForm <> nil) and (AForm is TCustomForm) and (AForm.Parent=nil) then begin if Screen.CustomFormZIndex(AForm) < Screen.GetCurrentModalFormZIndex then begin debugln('TGtk2WidgetSet.SetForegroundWindow Form=',DbgSName(AForm), ' can not be raised, because ', DbgSName(Screen.GetCurrentModalForm), ' is modal and above.'); Result := False; exit; end; Screen.MoveFormToZFront(AForm); end; {$IFDEF DebugGDKTraps} BeginGDKErrorTrap; {$ENDIF} gdk_window_show(GdkWindow); gdk_window_raise(GdkWindow); gdk_window_focus(GdkWindow, gtk_get_current_event_time); {$IFDEF DebugGDKTraps} EndGDKErrorTrap; {$ENDIF} // this currently will bring the window to the current desktop and focus it gtk_window_present(PGtkWindow(hWnd)); end; end; except {$IFDEF HASX} Result:=X11Raise(hWnd); {$ENDIF} end; end; |
|
I don't know why GetForegroundWindow was implemented like that. To me it looks like it can be implemented with only Gtk calls: http://www.gtk.org/api/2.6/gdk/GdkScreen.html#gdk-screen-get-default http://www.gtk.org/api/2.6/gdk/GdkScreen.html#gdk-screen-get-toplevel-windows |
|
I implemented GetForegroundWindow and modified SetForegroundWindow. It has applied in revision 31087. I'll try explain it... GetForegroundWindow is a winapi function: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633505%28v=vs.85%29.aspx It retrieves a handle of the foreground window... it does not exist in Linux systems. So I tried to emulate it. With Gtk calls we can't do it. With it, we only get a handle of a window of OUR application, but we need the handle of ANY window. And we only can do it with X Extended Window Manager messages like that. Regarding this bug...I think that it already existed before, it happens when a popup window (like menuitems or dropdown in combobox) is showing and a breakpoint is raised. Try with 0.9.30 version which have not my changes to check it. |
|
Your implementation has major issues: 1> No result is set if things go wrong. This may lead to random crashes. 2> Why didn't you wrap the resulting X11 window back into a GdkWindow? http://developer.gnome.org/gdk/stable/gdk-X-Window-System-Interaction.html#gdk-window-foreign-new If you suddently use a different handle type you simply achieve crashes in any routine which uses the handle... 3> Implement a routine like SetForeground based on getting an access violation and then catching it in a try except block is a very problematic solution. It should decidedly not be done. I think I fixed all issues now. |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-10-06 13:16 | Felipe Monteiro de Carvalho | New Issue | |
2011-10-06 13:16 | Felipe Monteiro de Carvalho | Status | new => assigned |
2011-10-06 13:16 | Felipe Monteiro de Carvalho | Assigned To | => Martin Friebe |
2011-10-06 13:16 | Felipe Monteiro de Carvalho | LazTarget | => - |
2011-10-06 13:17 | Felipe Monteiro de Carvalho | Note Added: 0052638 | |
2011-10-06 13:43 | Martin Friebe | Note Added: 0052643 | |
2011-10-06 13:43 | Martin Friebe | Status | assigned => feedback |
2011-10-06 14:04 | Martin Friebe | Note Added: 0052646 | |
2011-10-06 14:17 | Martin Friebe | Note Edited: 0052643 | |
2011-10-06 14:27 | Felipe Monteiro de Carvalho | Note Added: 0052649 | |
2011-10-06 14:27 | Felipe Monteiro de Carvalho | Note Edited: 0052649 | |
2011-10-06 14:51 | Felipe Monteiro de Carvalho | Note Added: 0052652 | |
2011-10-06 14:53 | Felipe Monteiro de Carvalho | Note Added: 0052653 | |
2011-10-06 15:00 | Martin Friebe | Note Added: 0052654 | |
2011-10-06 15:25 | Felipe Monteiro de Carvalho | Note Added: 0052655 | |
2011-10-06 15:39 | Felipe Monteiro de Carvalho | Note Added: 0052656 | |
2011-10-06 16:51 | Felipe Monteiro de Carvalho | LazTarget | - => 0.99.0 |
2011-10-06 16:53 | Felipe Monteiro de Carvalho | Note Added: 0052662 | |
2011-10-06 17:05 | Felipe Monteiro de Carvalho | File Added: debug.txt | |
2011-10-06 17:06 | Felipe Monteiro de Carvalho | Note Added: 0052663 | |
2011-10-06 17:18 | Martin Friebe | Note Added: 0052664 | |
2011-10-06 18:22 | Felipe Monteiro de Carvalho | Note Added: 0052668 | |
2011-10-06 18:28 | Felipe Monteiro de Carvalho | Note Added: 0052669 | |
2011-10-06 18:40 | Felipe Monteiro de Carvalho | Note Added: 0052670 | |
2011-10-06 18:41 | Felipe Monteiro de Carvalho | Note Added: 0052671 | |
2011-10-06 18:45 | Felipe Monteiro de Carvalho | Note Added: 0052672 | |
2011-10-06 18:48 | Felipe Monteiro de Carvalho | Note Added: 0052673 | |
2011-10-07 08:02 | Felipe Monteiro de Carvalho | Note Added: 0052698 | |
2011-10-07 08:39 | August Klein | Note Added: 0052704 | |
2011-10-07 09:03 | Felipe Monteiro de Carvalho | Status | feedback => assigned |
2011-10-07 09:03 | Felipe Monteiro de Carvalho | Assigned To | Martin Friebe => Felipe Monteiro de Carvalho |
2011-10-07 09:06 | August Klein | Note Edited: 0052704 | |
2011-10-07 09:12 | Felipe Monteiro de Carvalho | Note Added: 0052708 | |
2011-10-07 09:14 | Felipe Monteiro de Carvalho | Widgetset | => GTK 2 |
2011-10-07 09:14 | Felipe Monteiro de Carvalho | Summary | Random Debugger crashes => GetForegroundWindow crashes/freezes the IDE |
2011-10-07 09:14 | Felipe Monteiro de Carvalho | Fixed in Revision | => 32725 |
2011-10-07 09:14 | Felipe Monteiro de Carvalho | Status | assigned => resolved |
2011-10-07 09:14 | Felipe Monteiro de Carvalho | Fixed in Version | => 0.9.31 (SVN) |
2011-10-07 09:14 | Felipe Monteiro de Carvalho | Resolution | open => fixed |