Ticket #898 (closed defect: fixed)
Multiplayer game crashes in lobby when selecting text
| Reported by: | asmartgoat | Owned by: | kenny |
|---|---|---|---|
| Priority: | Release Blocker | Milestone: | Alpha 7 |
| Component: | Core engine | Keywords: | |
| Cc: | kenny |
Description
Selecting text with the mouse in the lobby (or when selecting a name) crashes the game.
Reproduced on: Windows 7, Fedora.
Change History
comment:2 Changed 21 months ago by historic_bruno
- Cc kenny added
- Priority changed from Must Have to Release Blocker
- Milestone changed from Backlog to Alpha 7
This is a pretty bad crash. I can reproduce by double clicking in the empty chat box (which shouldn't select anything but tries anyway) and trying to type. It also occurs sometimes if you select valid text.
Assertion failed: "len <= length()"
Location: CStr.cpp:253 (CStrW::Right)
Call stack:
CStrW::Right (cstr.cpp:253)
this = (unavailable)
len = 4294967295 (0xFFFFFFFF)
CInput::DeleteCurSelection (cinput.cpp:1874)
this = (unavailable)
virtualTo = 1 (0x00000001)
CInput::ManuallyHandleEvent (cinput.cpp:418)
this = (unavailable)
ev = 0x0070FC18 ->
ev =
type = [8] { 0 (0x00), 248 (0xF8), 112 (0x70), 0 (0x00), 117 (0x75), 0 (0x00), 0 (0x00), 0 (0x00) }
active = { type = 0 (0x00), gain = 248 (0xF8), state = 112 (0x70) }
key =
type = 0 (0x00)
keysym = { sym = SDLK_u, unicode = 117 (0x0075) }
motion = { type = 0 (0x00), x = 112 (0x0070), y = 117 (0x0075) }
button =
type = 0 (0x00)
button = 248 (0xF8)
state = 112 (0x70)
x = 117 (0x0075)
y = 0 (0x0000)
resize = { type = 0 (0x00), w = 117 (0x00000075), h = 1974337653 (0x75AE0075) }
expose = { type = 0 (0x00) }
quit = { type = 0 (0x00) }
user = { type = 0 (0x00), code = 117 (0x00000075), data1 = 0x75AE0075 }
cooked = 117 ('u')
pos_x = 0.000000 (0x00000075)
current = (_List_iterator<_List_val<CInput::SRow > >)
pos_x = 0.000000 (0x00000075)
current = (_List_iterator<_List_val<CInput::SRow > >)
multiline = false
max_length = 0 (0x00000000)
CGUI::HandleEvent (cgui.cpp:281)
this = (unavailable)
ev = 0x0070FC18 (see above)
pNearest = 0x106AA360 ->
m_CachedActualSize =
left = 374.000000 (0x43BB0000)
top = 616.000000 (0x441A0000)
right = 846.000000 (0x44538000)
bottom = 636.000000 (0x441F0000)
m_Name = { (unsupported basic_string<char,char_traits<char> >) }
m_Children = (unsupported vector<IGUIObject * >)
m_pParent = 0x19FCA698 ->
m_CachedActualSize =
left = 372.000000 (0x43BA0000)
top = 494.000000 (0x43F70000)
right = 912.000000 (0x44640000)
bottom = 639.000000 (0x441FC000)
m_Name = { (unsupported basic_string<char,char_traits<char> >) }
m_Children = (unsupported vector<IGUIObject * >)
m_pParent = 0x19FC94B8 ->
m_CachedActualSize =
left = 112.000000 (0x42E00000)
top = 84.000000 (0x42A80000)
right = 912.000000 (0x44640000)
bottom = 684.000000 (0x442B0000)
m_Name = { (unsupported basic_string<char,char_traits<char> >) }
m_Children = (unsupported vector<IGUIObject * >)
m_pParent = 0x107A60F0 ->
m_CachedActualSize =
left = 0.000000 (0x00000000)
top = 0.000000 (0x00000000)
right = 0.000000 (0x00000000)
bottom = 0.000000 (0x00000000)
m_Name = { (unsupported basic_string<char,char_traits<char> >) }
m_Children = (unsupported vector<IGUIObject * >)
m_pParent = 0x00000000
m_LastClickTime = [6]
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
m_MouseHovering = false
m_Settings = (unsupported map<CStr8,SGUISetting >)
m_pGUI = 0x10701FC8 ->
m_ScriptObject = 0x1A42A2A8 -> (JSObject)
m_MousePos =
x = 388.000000 (0x43C20000)
y = 626.000000 (0x441C8000)
m_MouseButtons = 0 (0x00000000)
m_Tooltip =
m_State = 1 (0x00000001)
m_PreviousObject = 0x106AA360 (see above)
m_PreviousTooltipName = { (unsupported basic_string<char,char_traits<char> >) }
m_PreviousMousePos =
x = 388.000000 (0x43C20000)
y = 626.000000 (0x441C8000)
m_Time = 5.9669e-154 (0x20200027736A2E67)
(too much output; skipping to next top-level symbol)
m_PreDefinedColors = (unsupported map<CStr8,CColor >)
m_BaseObject = 0x107A60F0 (see above)
m_FocusedObject = 0x106AA360 (see above)
m_pAllObjects = (unsupported map<CStr8,IGUIObject * >)
m_InternalNameNumber = 13 (0x0000000D)
m_ObjectTypes = (unsupported map<CStr8,IGUIObject * (__cdecl*)(void) >)
m_HotkeyObjects = (unsupported map<CStr8,vector<IGUIObject * > >)
m_Sprites = (unsupported map<CStr8,CGUISprite >)
m_Styles = (unsupported map<CStr8,SGUIStyle >)
m_ScrollBarStyles = (unsupported map<CStr8,SGUIScrollBarStyle >)
m_Icons = (unsupported map<CStr8,SGUIIcon >)
m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
m_JSObject = 0x00000000
m_LastClickTime = [6]
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
m_MouseHovering = false
m_Settings = (unsupported map<CStr8,SGUISetting >)
m_pGUI = 0x10701FC8 (see above)
m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
m_JSObject = 0x1A42A3C0 -> (JSObject)
m_LastClickTime = [6]
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
m_MouseHovering = false
m_Settings = (unsupported map<CStr8,SGUISetting >)
m_pGUI = 0x10701FC8 (see above)
m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
m_JSObject = 0x1A475A00 -> (JSObject)
m_LastClickTime = [6]
0 (0x0000000000000000)
14.4689 (0x402CF00ED56B0100)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
0 (0x0000000000000000)
m_MouseHovering = true
m_Settings = (unsupported map<CStr8,SGUISetting >)
m_pGUI = 0x10701FC8 (see above)
m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
m_JSObject = 0x1A4621B8 -> (JSObject)
ret = IN_PASS
oldMousePos =
x = 388.000000 (0x43C20000)
y = 626.000000 (0x441C8000)
msg =
type = 2142099
value = { (unsupported basic_string<char,char_traits<char> >) }
skipped = (bool)0x82
timeElapsed = 1.51133e-306 (0x0070FB1010516A70)
timeElapsed = 1.51133e-306 (0x0070FB1010516A70)
e = 0x00000000
CGUIManager::HandleEvent (guimanager.cpp:202)
this = (unavailable)
ev = 0x0070FC18 (see above)
handled = false
r = 275424096
gui_handler (guimanager.cpp:48)
ev = 0x0070FC18 (see above)
in_dispatch_event (input.cpp:60)
ev = 0x0070FC18 (see above)
PumpEvents (main.cpp:149)
ev =
ev =
type = 0 (0x00)
active = { type = 0 (0x00), gain = 248 (0xF8), state = 112 (0x70) }
key =
type = 0 (0x00)
keysym = { sym = SDLK_u, unicode = 117 (0x0075) }
motion = { type = 0 (0x00), x = 112 (0x0070), y = 117 (0x0075) }
button =
type = 0 (0x00)
button = 248 (0xF8)
state = 112 (0x70)
x = 117 (0x0075)
y = 0 (0x0000)
resize = { type = 0 (0x00), w = 117 (0x00000075), h = 1974337653 (0x75AE0075) }
expose = { type = 0 (0x00) }
quit = { type = 0 (0x00) }
user = { type = 0 (0x00), code = 117 (0x00000075), data1 = 0x75AE0075 (see above) }
Frame (main.cpp:309)
need_update = true
TimeSinceLastFrame = 0.002245 (0x3B131938)
need_render = true
down = [3] { 0.000000 (0x00374B7B), 0.000000 (0x00000001), 0.000000 (0x0070FE44) }
RunGameOrAtlas (main.cpp:492)
argc = 1 (0x00000001)
argv = (unavailable)
args =
m_Args = (unsupported vector<pair<CStr8,CStr8> >)
m_Arg0 =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 92 ('\')
paths =
m_root =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 64916
m_rdata =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 31728
m_data =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 372
m_config =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 6720
m_cache =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 14458
m_logs =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 507
replay =
m_Stream = 0x00000000
mod =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 57914
zip =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 23
paths =
m_root =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 64916
m_rdata =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 31728
m_data =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 372
m_config =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 6720
m_cache =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 14458
m_logs =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 507
builder =
m_VFS =
px = 0x02308190 -> (IVFS)
pn =
pi_ = 0x00000001
m_Files = (unsupported vector<Path >)
m_TempDir =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 530
main (main.cpp:511)
argc = 1 (0x00000001)
argv = 0x02307BF0 -> 0x02301A00 -> "C:\Users\Ben\devel\ps\binaries\system\pyrogenesis.exe"
wmain (wseh.cpp:380)
argc = 1 (0x00000001)
argv = 0x00747B00 -> 0x00747B08 -> "C:\Users\Ben\devel\ps\binaries\system\pyrogenesis.exe"
utf8_argv = (unsupported vector<char * >)
ret = 7633664 (0x00747B00)
utf8 = (unsupported basic_string<char,char_traits<char> >)
CallStartupWithinTryBlock (wseh.cpp:397)
ret = 0 (0x00000000)
RtlInitializeExceptionChain (:0)
RtlInitializeExceptionChain (:0)
errno = 0 (No error reported here)
OS error = 0 (no error code was set)
Note: See
TracTickets for help on using
tickets.

Could you please provide some more information? Do you get any error messages? On windows they should be saved in: %appdata%\0ad\logs\interestinglog.html and on Linux you could try running the game from the console to try and see any error messages there in case you don't see any already (that's of course unless you don't get the error message dialog of the game, in that case just copy that info and post in a comment/update the ticket).