|
|
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 ] | |
|
| |