[Scummvm-tracker] [ScummVM :: Bugs] #11334: Myst ME crashes when dropping key in stoneship age
ScummVM :: Bugs
trac at scummvm.org
Wed Jan 29 10:17:36 UTC 2020
#11334: Myst ME crashes when dropping key in stoneship age
---------------------+----------------------------
Reporter: clbr | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Mohawk
Resolution: | Keywords: crash
Game: Myst |
---------------------+----------------------------
Comment (by clbr):
Here's gdb bt from today's master (8a8336328e8)
{{{
scummvm: ./common/array.h:192: T& Common::Array<T>::operator[](uint) [with
T = Common::QuickTimeParser::EditListEntry]: Assertion `idx < _size'
failed.
Program received signal SIGABRT, Aborted.
0x00007ffff45eb095 in raise () from /lib/libc.so.6
(gdb) bt full
#0 0x00007ffff45eb095 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x00007ffff45ec540 in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x00007ffff45e468f in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3 0x000000000055531b in operator[] (idx=<optimized out>, this=<optimized
out>)
at ./common/array.h:192
No locals.
#4 Video::QuickTimeDecoder::VideoTrackHandler::seek (this=0xb36e90,
requestedTime=...)
at video/qt_decoder.cpp:372
convertedFrames = 450
time = {_secs = -13184, _numFrames = 32767, _framerate = 11761968,
_framerateFactor = 0}
__PRETTY_FUNCTION__ = "virtual bool
Video::QuickTimeDecoder::VideoTrackHandler::seek(const Audio::Timestamp&)"
#5 0x0000000000557cf0 in Video::VideoDecoder::seekIntern (this=0xb369f0,
time=...)
at video/video_decoder.cpp:503
it = 0xf3a9b0
#6 0x0000000000557870 in Video::VideoDecoder::seek (this=0xb369f0,
time=...)
at video/video_decoder.cpp:362
No locals.
#7 0x000000000045e296 in Mohawk::MystAreaVideo::playMovie (this=0xb37930)
at engines/mohawk/myst_areas.cpp:251
rate = {_num = -1, _denom = 1}
handle = {<Common::SafeBool<Common::SharedPtr<Mohawk::VideoEntry>,
Common::impl::no_base<Common::SharedPtr<Mohawk::VideoEntry> > >> =
{<Common::impl::no_base<Common::SharedPtr<Mohawk::VideoEntry> >> = {<No
data fields>}, <No data fields>}, _refCount = 0xf28800, _deletion =
0xf3b780,
_pointer = 0xfff310}
#8 0x000000000046f3a4 in Mohawk::MystScriptParser::o_triggerMovie
(this=<optimized out>,
var=<optimized out>, args=...) at engines/mohawk/myst_scripts.cpp:455
direction = -1
resource = 0x59b9
#9 0x000000000046da78 in Mohawk::MystScriptParser::runOpcode
(this=0xb37db0, op=<optimized out>,
var=22969, args=...) at engines/mohawk/myst_scripts.cpp:195
i = <optimized out>
#10 0x000000000046db2f in Mohawk::MystScriptParser::runScript
(this=0xb37db0, script=...,
invokingResource=0xb37930) at engines/mohawk/myst_scripts.cpp:179
entry = @0xb37b98: {type = Mohawk::kMystScriptNormal, resourceId =
0, opcode = 9, var = 0,
args = {_capacity = 1, _size = 1, _storage = 0xfa6a50}, u1 = 0}
i = 2
#11 0x000000000045f5aa in Mohawk::MystAreaAction::handleMouseUp (this=0x6)
at engines/mohawk/myst_areas.cpp:153
No locals.
#12 0x000000000046423f in Mohawk::MystCard::updateResourcesForInput
(this=0xb5e9a0, mouse=...,
mouseClicked=false, mouseMoved=false) at
engines/mohawk/myst_card.cpp:384
No locals.
#13 0x000000000045c00e in Mohawk::MohawkEngine_Myst::doFrame
(this=0xffc690)
at engines/mohawk/myst.cpp:660
mousePos = {x = 308, y = 281}
---Type <return> to continue, or q <return> to quit---
event = {type = Common::EVENT_CUSTOM_ENGINE_ACTION_END, kbdRepeat
= false, kbd = {
keycode = Common::KEYCODE_INVALID, ascii = 0, flags = 0
'\000'}, mouse = {x = 308,
y = 281}, customType = 2, path = {static npos = 4294967295,
static _builtinCapacity = 20, _size = 0, _str = 0x7fffffffce38
"", {
_storage =
"\000Ûÿ\000\000\000\000\000\004\000\000\000\b\020\b\000 µE", _extern = {
_refCount = 0xffdb00, _capacity = 4}}}, joystick = {axis =
0 '\000', position = 0,
button = 0 '\000'}}
#14 0x000000000045c938 in Mohawk::MohawkEngine_Myst::run (this=0x59b9)
at engines/mohawk/myst.cpp:450
No locals.
#15 0x000000000040e624 in runGame () at base/main.cpp:295
No locals.
#16 0x000000000040fc82 in scummvm_main (argc=<optimized out>,
argv=<optimized out>)
at base/main.cpp:554
result = {_code = Common::kNoError, _desc = {static npos =
4294967295,
static _builtinCapacity = 20, _size = 0, _str = 0x0, {
_storage = '\000' <repeats 19 times>, _extern = {_refCount =
0x0, _capacity = 0}}}}
chainedGame = {static npos = 4294967295, static _builtinCapacity =
20, _size = 4094842584,
_str = 0x0, {_storage = '\000' <repeats 19 times>, _extern =
{_refCount = 0x0,
_capacity = 0}}}
saveSlot = 0
plugin = 0xa66390
specialDebug = {static npos = 4294967295, static _builtinCapacity
= 20, _size = 0,
_str = 0x7fffffffe3f0 "", {_storage = '\000' <repeats 16 times>,
"påÿÿ", _extern = {
_refCount = 0x0, _capacity = 0}}}
command = {static npos = 4294967295, static _builtinCapacity = 20,
_size = 0,
_str = 0x7fffffffe3c0 "", {_storage =
"\000àþ÷ÿ\177\000\000µLbôÿ\177\000\000;\000\000",
_extern = {_refCount = 0x7ffff7fee000, _capacity =
4100082869}}}
settings = {
_nodePool = {<Common::FixedSizeMemoryPool<80ul, 10ul>> =
{<Common::MemoryPool> = {
_chunkSize = 80, _pages = {_capacity = 0, _size = 0,
_storage = 0x0},
_next = 0x7fffffffd868, _chunksPerPage = 8},
_storage = "¸Øÿÿÿ\177", '\000' <repeats 74 times>,
"\bÙÿÿÿ\177", '\000' <repeats 74 times>, "XÙÿÿÿ\177", '\000' <repeats 74
times>...}, <No data fields>}, _defaultVal = {
static npos = 4294967295, static _builtinCapacity = 20, _size
= 0,
_str = 0x7fffffffdb98 "", {_storage = '\000' <repeats 19
times>, _extern = {
_refCount = 0x0, _capacity = 0}}}, _storage = 0xa07690,
_mask = 15, _size = 0,
_deleted = 0, _hash = {<No data fields>}, _equal = {<No data
fields>}}
res = {_code = Common::kNoError, _desc = {static npos =
4294967295,
static _builtinCapacity = 20, _size = 8, _str = 0x7fffffffdc18
"No error", {
_storage = "No error\000rror\000\000\000\000\000\000",
_extern = {
_refCount = 0x726f727265206f4e, _capacity = 1869771264}}}}
__PRETTY_FUNCTION__ = "int scummvm_main(int, const char* const*)"
#17 0x000000000040c875 in main (argc=1, argv=0x7fffffffe578)
at backends/platform/sdl/posix/posix-main.cpp:45
res = <optimized out>
__PRETTY_FUNCTION__ = "int main(int, char**)"
(gdb) qui
}}}
I also ran it under valgrind. Valgrind said nothing related before the
assert crash (some Conditional jump or move depends on uninitialised value
in the initial game picker GUI).
--
Ticket URL: <https://bugs.scummvm.org/ticket/11334#comment:7>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list