[Lazarus] Windows startup infinite loop

Henry Vermaak henry.vermaak at gmail.com
Wed Feb 13 18:37:10 CET 2019


We're having a strange problem here, an infinite loop happens on a customer's
machine just after the main form is created.  It doesn't happen when the
program is run inside a debugger and it only happens on the customer's
machine(s), so it's probably related to their Windows configuration.

The infinite loop is not in our code (probably happens with HandleNeeded() is
called for the main form).  When I attach gdb manually when the program is run
outside the debugger I can get a stack trace that shows the loop:

(gdb) thread 1
[Switching to thread 1 (Thread 4484.0x2bc8)]
#0  0x76d2566b in USER32!DispatchMessageW () from C:\WINDOWS\System32\user32.dll
(gdb) bt
#0  0x76d2566b in USER32!DispatchMessageW () from C:\WINDOWS\System32\user32.dll
#1  0x76d1b387 in USER32!CallWindowProcW () from C:\WINDOWS\System32\user32.dll
#2  0x005076ab in CALLDEFAULTWINDOWPROC (WINDOW=592304, MSG=48, WPARAM=-854972773, LPARAM=0)
    at ./win32/win32callback.inc:97
#3  0x0050bb80 in TWINDOWPROCHELPER__DOWINDOWPROC (this=0xf3e7e1c) at ./win32/win32callback.inc:2419
#4  0x0050c4fb in WINDOWPROC (WINDOW=592304, MSG=48, WPARAM=-854972773, LPARAM=0) at ./win32/win32callback.inc:2673
#5  0x76d334bb in USER32!AddClipboardFormatListener () from C:\WINDOWS\System32\user32.dll
#6  0x76d25913 in USER32!DispatchMessageW () from C:\WINDOWS\System32\user32.dll
#7  0x76d1b387 in USER32!CallWindowProcW () from C:\WINDOWS\System32\user32.dll
#8  0x72e6fd6d in ?? ()
#9  0x72e6f8ef in ?? ()
#10 0x76d334bb in USER32!AddClipboardFormatListener () from C:\WINDOWS\System32\user32.dll
#11 0x76d25913 in USER32!DispatchMessageW () from C:\WINDOWS\System32\user32.dll
#12 0x76d1b387 in USER32!CallWindowProcW () from C:\WINDOWS\System32\user32.dll
#13 0x005076ab in CALLDEFAULTWINDOWPROC (WINDOW=592304, MSG=48, WPARAM=-854972773, LPARAM=0)
    at ./win32/win32callback.inc:97
#14 0x0050bb80 in TWINDOWPROCHELPER__DOWINDOWPROC (this=0xf3e7cf4) at ./win32/win32callback.inc:2419
#15 0x0050c4fb in WINDOWPROC (WINDOW=592304, MSG=48, WPARAM=-854972773, LPARAM=0) at ./win32/win32callback.inc:2673
#16 0x76d334bb in USER32!AddClipboardFormatListener () from C:\WINDOWS\System32\user32.dll
#17 0x76d25913 in USER32!DispatchMessageW () from C:\WINDOWS\System32\user32.dll
#18 0x76d1b387 in USER32!CallWindowProcW () from C:\WINDOWS\System32\user32.dll
#19 0x72e6fd6d in ?? ()
#20 0x72e6f8ef in ?? ()
#21 0x76d334bb in USER32!AddClipboardFormatListener () from C:\WINDOWS\System32\user32.dll
#22 0x76d25913 in USER32!DispatchMessageW () from C:\WINDOWS\System32\user32.dll
#23 0x76d1b387 in USER32!CallWindowProcW () from C:\WINDOWS\System32\user32.dll
#24 0x005076ab in CALLDEFAULTWINDOWPROC (WINDOW=592304, MSG=48, WPARAM=-854972773, LPARAM=0)
    at ./win32/win32callback.inc:97
#25 0x0050bb80 in TWINDOWPROCHELPER__DOWINDOWPROC (this=0xf3e7bcc) at ./win32/win32callback.inc:2419

It carries on like this until you stop with ctrl-c.  I was wondering if this
rang a bell for anyone?  I'm running on the fixes_2_0 branch now, but the
problem existed with fixes_1_8 too.

Is there anything I can do to help get to the bottom of this?  Will rebuilding
the LCL with MSG_DEBUG help?

Henry


More information about the lazarus mailing list