Home > front end >  Strange freezing cases of Qt GUI event loop on Windows
Strange freezing cases of Qt GUI event loop on Windows

Time:04-27

I try to ask here if somebody has encountered such a problem.

From time to time, I have a situation: I launch my Qt app on Windows (in debug mode, but I am not sure if it matters) via cmd.exe and then I work with it and then I stop working with it for some time. Then I return it to be focused and very rarely I experience this: the app is Not Responding even though I do not have any logic for it to react on being returned to be focused. Then I wait and wait and noting happens and then I press any key in my cmd.exe, and instead of being killed, my app suddenly wakes up and continues to work, and then I do not experience any problems anymore.

What can be the problem? On Linux I do not experience such a problem. I ask because I cannot trace the problem, as it happens not very often. Also, I am not very good acquainted with Windows. If it was Linux I would use gdp -p and try to see where the app hangs. But what can I do on Windows? Any advice on how to catch this?

UPDATE: I can press any key in my cmd.exe to unfreeze the program.

UPDATE:

It looks like it freezes on one of my debug-printfs:

STACK_TEXT:  
: ntdll!NtWriteFile 0x14
: KERNELBASE!WriteFile 0x76
!write_text_ansi_nolock 0x183
!_write_nolock 0x451
!_write_internal 0x377
!__acrt_stdio_flush_nolock 0xc4
!__acrt_stdio_end_temporary_buffering_nolock 0x54
!__acrt_stdio_temporary_buffering_guard::~__acrt_stdio_temporary_buffering_guard 0x28
!<lambda_303760bc4008a2b3ec4768a30b06a80c>::operator() 0x104
!__crt_seh_guarded_call<int>::operator()<<lambda_d854c62834386a3b23916ad6dae2782d>,<lambda_303760bc4008a2b3ec4768a30b06a80c> &,<lambda_4780a7ea4f8cbd2590aec34bd14e2bbf> > 0x35
!__acrt_lock_stream_and_call<<lambda_303760bc4008a2b3ec4768a30b06a80c> > 0x58
!common_vfprintf<__crt_stdio_output::standard_base,char> 0x21a
!__stdio_common_vfprintf 0x5c
!_vfprintf_l 0x3f
!printf 0x58
! MyClass::myfunc -- that executes my handler of the button pressed (which freezes)

Why can be so? I mean it's just a printf writing to cmd.

CodePudding user response:

Here is the answer to my question:

https://stackoverflow.com/a/33883532/4781940

I really have that Select Command Prompt title when the freeze happens.

  • Related