[ scummvm-Bugs-2210082 ] GUI:
SourceForge.net
noreply at sourceforge.net
Thu Oct 30 18:21:54 CET 2008
Bugs item #2210082, was opened at 2008-10-30 18:21
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=2210082&group_id=37116
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: GUI
Group: None
Status: Open
Resolution: None
Priority: 7
Private: No
Submitted By: Max Horn (fingolfin)
Assigned to: Nobody/Anonymous (nobody)
Summary: GUI:
Initial Comment:
Today, I noticed that I could sometimes trigger a weird crash in latest SVN. It seems to be a bug in either the GUI or the RTL / GMM code. I still have no good way to trigger it, but will try to find one when I have more time. Here is what I did: Started a game (in this case, DOTT in the SCUMM engine), opened the GMM menu via F6. Then I changed the scaler from 1x to 2x and back, and it suddenly crashed. This happened a few times to me now, though I have still not figured out when exactly it happens, and it is a bit harder to try for long due to another bug I am about to report... :)
Here is a partial backtrace:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xc000000f
0x006989e3 in GUI::Dialog::handleMouseMoved (this=0x111fd40, x=-33, y=216, button=0) at gui/dialog.cpp:257
257 int wx = w->getAbsX() - _x;
(gdb) bt
#0 0x006989e3 in GUI::Dialog::handleMouseMoved (this=0x111fd40, x=-33, y=216, button=0) at gui/dialog.cpp:257
#1 0x006acaa4 in GUI::NewGui::runLoop (this=0x1866600) at gui/newgui.cpp:262
#2 0x00699179 in GUI::Dialog::runModal (this=0x111fd40) at gui/dialog.cpp:73
#3 0x000c548b in Scumm::ScummEngine::runDialog (this=0x165db000, dialog=@0x111fd40) at engines/scumm/scumm.cpp:2277
#4 0x00777013 in Engine::openMainMenuDialog (this=0x165db000) at engines/engine.cpp:234
#5 0x0077afad in DefaultEventManager::pollEvent (this=0x117c710, event=@0xbfffd828) at backends/events/default/default-events.cpp:419
#6 0x0006d7b2 in Scumm::ScummEngine::parseEvents (this=0x165db000) at engines/scumm/input.cpp:62
#7 0x000c44e0 in Scumm::ScummEngine::waitForTimer (this=0x165db000, msec_delay=100) at engines/scumm/scumm.cpp:1781
#8 0x000c480a in Scumm::ScummEngine::go (this=0x165db000) at engines/scumm/scumm.cpp:1749
#9 0x0000bbac in runGame (plugin=0x1146000, system=@0x1828000, edebuglevels=@0xbfffe154) at base/main.cpp:216
#10 0x0000c494 in scummvm_main (argc=1, argv=0x11099f0) at base/main.cpp:309
The odd thing is that I am not quite sure why it crashes exactly there; maybe the trace is just wrong, but FYI:
(gdb) p this
$5 = (class GUI::Dialog * const) 0x111fd40
(gdb) p w
$6 = (class GUI::Widget *) 0x17cb4ad0
So neither w nor "this" are zero. Maybe the vtable got corrupt, but I have no idea how to print that. Some more data:
(gdb) p *w
$11 = {
<GUI::GuiObject> = {
<GUI::CommandReceiver> = {
_vptr$CommandReceiver = 0xc0000003
},
members of GUI::GuiObject:
_x = 3,
_y = -16384,
_w = 7,
_h = 12,
_name = {
static _builtinCapacity = 24,
_size = 16,
_str = 0x17cb4ae4 "GlobalMenu.Title",
{
_storage = "GlobalMenu.Title\000\000\000\000??\032\001",
_extern = {
_refCount = 0x626f6c47,
_capacity = 1699572833
}
},
static emptyString = {
static _builtinCapacity = 24,
_size = 0,
_str = 0x957388 "",
{
_storage = '\0' <repeats 23 times>,
_extern = {
_refCount = 0x0,
_capacity = 0
}
},
static emptyString = <same as static member of an already seen type>
}
},
_firstWidget = 0x0
},
members of GUI::Widget:
_type = 1413830740,
_boss = 0x111fd40,
_next = 0x0,
_id = 0,
_hasFocus = true,
_state = GUI::Theme::kStateEnabled,
_flags = 1
}
(gdb) p *this
$12 = (MainMenuDialog) {
<GlobalDialog> = {
<GUI::Dialog> = {
<GUI::GuiObject> = {
<GUI::CommandReceiver> = {
_vptr$CommandReceiver = 0x8edce8
},
members of GUI::GuiObject:
_x = 199,
_y = 110,
_w = 242,
_h = 260,
_name = {
static _builtinCapacity = 24,
_size = 10,
_str = 0x111fd54 "GlobalMenu",
{
_storage = "GlobalMenu\000\001", '\0' <repeats 11 times>,
_extern = {
_refCount = 0x626f6c47,
_capacity = 1699572833
}
},
static emptyString = {
static _builtinCapacity = 24,
_size = 0,
_str = 0x957388 "",
{
_storage = '\0' <repeats 23 times>,
_extern = {
_refCount = 0x0,
_capacity = 0
}
},
static emptyString = <same as static member of an already seen type>
}
},
_firstWidget = 0x11a4e00
},
members of GUI::Dialog:
_mouseWidget = 0x0,
_focusedWidget = 0x17cb4ad0,
_dragWidget = 0x0,
_visible = true,
_backgroundType = GUI::Theme::kDialogBackgroundSpecial,
_result = 0
}, <No data fields>},
members of MainMenuDialog:
_engine = 0x165db000,
_logo = 0x11a4e00,
_rtlButton = 0x17ca8d70,
_aboutDialog = 0x17ca8e70,
_optionsDialog = 0x17cad600
}
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=2210082&group_id=37116
More information about the Scummvm-tracker
mailing list