displaying tooltips in fullscreen causes crash
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
widelands |
Fix Released
|
High
|
Unassigned |
Bug Description
I reliably get a segmentation fault when (just before) a tooltip is displayed in fullscreen mode.
Steps to reproduce:
start widelands
go to options
set fullscreen mode, apply
go to options again
hover over any of the ++ or -- buttons which display a tooltip
->Crasch.
I have Widelands bzr6518, which I compiled myself. The problem occurs both on a 64 bit, up-to-date debian Wheezy and
a 32 bit Ubuntu 11.10.
When I compile in debug mode, and run in gdb, the crash occurs here (full output is in the attachment):
...
SurfaceCache: inserted pics/list_
SurfaceCache: inserted pics/optionsmen
Program received signal SIGSEGV, Segmentation fault.
0x000000000060b265 in UI::Font_
I did not get further in the debugging, since the crasched widelands still takes up my screen, and I don't know how to reach the terminal where gdb is running. I eventually killed gdb from a textmode terminal (CTRL+ALT+F1).
More observations:
-tooltips work in windowed mode
-which resolution I choose in fullscreen mode does not seem to matter
-I have seen the crasch with several of the tooltips on the options screen, and also while trying to start a new game (victory conditions, I think).
summary: |
- displaying tooltips in fullscreen causes crasch + displaying tooltips in fullscreen causes crash |
Changed in widelands: | |
assignee: | SirVer (sirver) → nobody |
Now I got a backtrace as well. It turned out I did a release build initially, but now I made a new build in debug mode.
To keep acces to gdb, with Widelands in fullscreen, I did the following:
CTRL+ALT+F1 to a console, log in
cd to the widelands directory
export DISPLAY=:0.0
gdb widelands
run
CTRL+ALT+F8 to X-windows
find the widelands window, cause it to crash as above
CTRL+ALT+F1 to the console
bt
The backtrace: Handler1: :render (this=0x15f1030, text=..., w=360) at /home/fjansson/ wl/widelands/ src/graphic/ font_handler1. cc:99 cache_- >has(hash) ) Handler1: :render (this=0x15f1030, text=..., w=360) at /home/fjansson/ wl/widelands/ src/graphic/ font_handler1. cc:99 :draw_tooltip (dst=..., text=...) at /home/fjansson/ wl/widelands/ src/ui_ basic/panel. cc:1122 wl/widelands/ src/ui_ basic/panel. cc:192 Ctrl::handle_ menu (this=0x7ffffff fd580) at /home/fjansson/ wl/widelands/ src/ui_ fsmenu/ options. cc:650 Ctrl::Options_ Ctrl (this=0x7ffffff fd580, s=...) at /home/fjansson/ wl/widelands/ src/ui_ fsmenu/ options. cc:641 :mainmenu (this=0x12a0190) at /home/fjansson/ wl/widelands/ src/wlapplicati on.cc:1583 wl/widelands/ src/wlapplicati on.cc:475 e6f8) at /home/fjansson/ wl/widelands/ src/main. cc:107
Program received signal SIGSEGV, Segmentation fault.
0x0000000000ac4e1c in UI::Font_
99 if (image_
(gdb) bt
#0 0x0000000000ac4e1c in UI::Font_
#1 0x0000000000a3ce3c in UI::Panel:
#2 0x0000000000a3afa5 in UI::Panel::run (this=0x2058bd0) at /home/fjansson/
#3 0x0000000000a8972b in Options_
#4 0x0000000000a8969d in Options_
#5 0x00000000009a15bb in WLApplication:
#6 0x000000000099c7ba in WLApplication::run (this=0x12a0190) at /home/fjansson/
#7 0x000000000099a9fe in main (argc=1, argv=0x7fffffff