FLTK logo

Re: [fltk.coredev] Windows 11 crash (still investigating)

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.coredev  ]
 
Previous Message ]New Message | Reply ]Next Message ]

Re: Windows 11 crash (still investigating) "'Albrecht Schlosser' via fltk.coredev" 10:52 Apr 24  
  On 4/24/24 19:14 Gonzalo Garramuño wrote:

A user of my program reported random crashes when working, which I cannot reproduce.  I managed to get a stack trace from him, but not much more information yet.  The relevant information follows.  Any help is appreciated.


Note: a stack trace w/o debug info is not very helpful. If this issue persists I recommend to deploy an executable from a debug build (assuming that you build the executable and not the end user).

6: KiUserExceptionDispatcher - 0x140711815885776
 
KiUserExceptionDispatcher is not defined by FLTK. This indicates that the handle() method of your derived window class calls KiUserExceptionDispatcher().
7: Fl_Window::handle - 0x140709297099744


I have no idea why Fl_Tiled_Image::draw() would (indirectly) call Fl_Window::handle(). There's some clipping done, hence fl_win32_xid() might be plausible.
8: Fl_Window::y_root - 0x140709297101632
9: fl_win32_xid - 0x140709297228272
10: Fl_Tiled_Image::draw - 0x140709297052528

Fl_Tiled_Image::draw() may be called (IIRC) when the 'plastic' scheme is used to draw the background image.
11: fl_control_modifier - 0x140709296916000
12: Fl_Window::icons - 0x140709297290000
13: Fl::run - 0x140709296628080

It is a weird stack trace as I don't have any Fl_Tiled_Image in my program.


See above.

Also, I would like to know what's and when is fl_control_modifier() called.  If it is when you use CTRL, then I have a clue what to start checking.


I'd guess it's use to check if a particular modifier (FL_COMMAND or FL_CONTROL) is set in a key event or to check for a shortcut:
FL/platform_types.h-136-#  define FL_COMMAND    fl_command_modifier()
FL/platform_types.h:137:#  define FL_CONTROL    fl_control_modifier()

One last note: assuming there is a bug somewhere in the program (either your code or a used library) it can be something called a "Heisenbug" that goes away when you rebuild your program, when data is changed, or when you build it in Debug rather than Release mode. IMHO the best you can do is to use a memory analyzer like Address Sanitizer (ASAN) or valgrind to check for access violations in thorough tests. IIRC Visual Studio supports ASAN, hence you should be able to build your program with ASAN support on Windows, and I'd guess that MSYS2 also supports (clang and) ASAN.

I hope this helps. Good luck.

--
You received this message because you are subscribed to the Google Groups "fltk.coredev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkcoredev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkcoredev/ac36179b-2f57-416d-af45-2c7667d87636%40aljus.de.
Direct Link to Message ]
 
     
Previous Message ]New Message | Reply ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.