CodeLite crashes sometimes when is switched between other apps with ALT+TAB #1266

Closed
fdenia opened this Issue May 2, 2016 · 8 comments

Projects

None yet

3 participants

@fdenia
fdenia commented May 2, 2016

Sometimes, when we switch apps with ALT+TAB, it break

@eranif
Owner
eranif commented May 2, 2016

You will have to give more than that...

@w3bstate

I am facing with the same issue - when changing window from the CodeLite to an window of another program, Codelite is got exception.
I am using CodeLite 9.1.6 x64 pre compiled from your site, my OS is Windows 7 x64.
There is call stack from the VS debugger:

wxmsw310u_gcc_cl.dll!_ZN8wxWindow13MSWWindowProcEjyx() + 0x4e byte
[ Following frames may be wrong, symbols for wxmsw310u_gcc_cl.dll not loaded]
user32.dll!TranslateMessageEx() + 0x2a1 byte
user32.dll!SetWindowTextW() + 0x277 byte
user32.dll!IsDialogMessageW() + 0x169 byte
ntdll.dll!KiUserCallbackDispatcher() + 0x1f byte
user32.dll!PeekMessageW() + 0xba byte
user32.dll!PeekMessageW() + 0x85 byte
wxmsw310u_gcc_cl.dll!_ZN18wxMSWEventLoopBase21GetNextMessageTimeoutEP6tagMSGm() + 0x3c byte
wxmsw310u_gcc_cl.dll!_ZN18wxMSWEventLoopBase14GetNextMessageEP6tagMSG() + 0xf byte
wxmsw310u_gcc_cl.dll!_ZN14wxGUIEventLoop8DispatchEv() + 0x18 byte
wxmsw310u_gcc_cl.dll!_ZN17wxEventLoopManual13ProcessEventsEv() + 0x32 byte
wxmsw310u_gcc_cl.dll!_ZN17wxEventLoopManual5DoRunEv() + 0xab byte
wxmsw310u_gcc_cl.dll!_ZN15wxEventLoopBase3RunEv() + 0xb4 byte
wxmsw310u_gcc_cl.dll!_ZN16wxAppConsoleBase8MainLoopEv() + 0x51 byte
wxmsw310u_gcc_cl.dll!_Z12wxInitializeRiPPw() + 0xd8 byte
codelite.exe!00000000004013e8()
codelite.exe!00000000004014eb()
kernel32.dll!BaseThreadInitThunk() + 0xd byte
ntdll.dll!RtlUserThreadStart() + 0x21 byte

and here is disassembled code:

_ZN8wxWindow13MSWWindowProcEjyx:
0000000069C3F1C0 push rbp
0000000069C3F1C1 push rdi
0000000069C3F1C2 push rsi
0000000069C3F1C3 push rbx
0000000069C3F1C4 sub rsp,48h
0000000069C3F1C8 mov rax,qword ptr [rcx]
0000000069C3F1CB mov esi,edx
0000000069C3F1CD mov qword ptr [rsp+20h],r9
0000000069C3F1D2 mov rbx,rcx
0000000069C3F1D5 mov rdi,r8
0000000069C3F1D8 mov rbp,r9
0000000069C3F1DB lea rdx,[rsp+38h]
0000000069C3F1E0 mov r9,r8
0000000069C3F1E3 mov r8d,esi
0000000069C3F1E6 call qword ptr [rax+628h]
0000000069C3F1EC test al,al
0000000069C3F1EE je _ZN8wxWindow13MSWWindowProcEjyx+40h (69C3F200h)
0000000069C3F1F0 mov rax,qword ptr [rsp+38h]
0000000069C3F1F5 add rsp,48h
0000000069C3F1F9 pop rbx
0000000069C3F1FA pop rsi
0000000069C3F1FB pop rdi
0000000069C3F1FC pop rbp
0000000069C3F1FD ret
0000000069C3F1FE xchg ax,ax
0000000069C3F200 mov rax,qword ptr [rbx]
0000000069C3F203 mov r9,rbp
0000000069C3F206 mov r8,rdi
0000000069C3F209 mov edx,esi
0000000069C3F20B mov rcx,rbx
==>0000000069C3F20E call qword ptr [rax+638h] <-- exception occurs in this offset
0000000069C3F214 add rsp,48h
0000000069C3F218 pop rbx
0000000069C3F219 pop rsi
0000000069C3F21A pop rdi
0000000069C3F21B pop rbp
0000000069C3F21C ret
0000000069C3F21D nop
0000000069C3F21E xchg ax,ax

@eranif
Owner
eranif commented May 14, 2016

This backtrace indicates that its something wrong in wxWidgets code, however, I am not sure where or how to workaround it.

I really, need the ability to reproduce this on my Windows machine, or alternatively, you can build a debug version of CodeLite and debug this

@w3bstate

Yep, something wrong with wxWidgets.
I wanna try to debug it by myself, but I needs .pdb symbols for the wxmsw310u_gcc_cl.dll.
I found wxWidgets .pdb symbols here, but I need to know which x64 C Runtime it used - vc90, vc100, vc110, vc120,vc140?
In the Dependency Walker I dont see any MSVCRXXX.DLL, only MSVCR.DLL from the win dir.
Most strange about this bug, that it happening pretty rare, so it hard to reproducing it.

@eranif
Owner
eranif commented May 14, 2016

CodeLite is built with MinGW (g++) not VC, so you will need to build CodeLite in Debug mode

@w3bstate
w3bstate commented May 14, 2016 edited

I am eventually identified how reproduce this bug - it's all about autocomplete(code completion) bubble.
Raise autocomplete bubble and then immediately change window to the another program.

@eranif
Owner
eranif commented May 25, 2016

Still can't make this happen, can you please try and debug this?
How to build CodeLite: http://codelite.org/Developers/Windows

@w3bstate
w3bstate commented Jun 1, 2016 edited

I tried to build the WxWidgets according to your instruction at the link above, but without success.
I got this error every time:

bin/ld.exe: out of memory allocating

I use TDM GCC of the latest version and apply the flag CXXFLAGS="-fno-keep-inline-dllexport" but does not help at all.
By the way in the your instruction you make a mistake - you forgot add BUILD=debug and SHARED=1 for the debug mode in the first step execution of the build command.
There is any way to build CodeLite just use the debugging binaries of the WxWidgets and header files?

@eranif eranif closed this in d2b8167 Sep 9, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment