[Scummvm-tracker] [ScummVM] #10568: SCI: PHANT1: Crash on startup

Torbjörn Andersson trac at scummvm.org
Wed Jun 13 06:48:44 CEST 2018


#10568: SCI: PHANT1: Crash on startup
-------------------------------+-------------------------
  Reporter:  dafioram          |      Owner:  (none)
      Type:  defect            |     Status:  new
  Priority:  blocker           |  Component:  Engine: SCI
Resolution:                    |   Keywords:  sci32
      Game:  Phantasmagoria 1  |
-------------------------------+-------------------------

Comment (by eriktorbjorn):

 Here's a Valgrind log:

 {{{
 ==32727== Memcheck, a memory error detector
 ==32727== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
 ==32727== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright
 info
 ==32727== Command: ./scummvm
 ==32727==
 User picked target 'phantasmagoria' (gameid 'sci')...
   Looking for a plugin supporting this gameid... SCI [SCI0, SCI01, SCI10,
 SCI11, SCI32]
   Starting 'Sierra SCI Game'
 Skipping blacklisted patch file 65535.map
 ==32727== Invalid read of size 1
 ==32727==    at 0x1944F6C: Sci::SCALER_Scale<false,
 Sci::READER_Compressed>::read() (celobj32.cpp:303)
 ==32727==    by 0x1943F08: Sci::RENDERER<Sci::MAPPER_NoMD,
 Sci::SCALER_Scale<false, Sci::READER_Compressed>,
 false>::draw(Graphics::Surface&, Common::Rect const&, Common::Point
 const&) const (celobj32.cpp:737)
 ==32727==    by 0x193E08F: void Sci::CelObj::render<Sci::MAPPER_NoMD,
 Sci::SCALER_Scale<false, Sci::READER_Compressed> >(Graphics::Surface&,
 Common::Rect const&, Common::Point const&, Common::Rational const&,
 Common::Rational const&) const (celobj32.cpp:764)
 ==32727==    by 0x193920E: Sci::CelObj::scaleDrawNoMD(Graphics::Surface&,
 Common::Rational const&, Common::Rational const&, Common::Rect const&,
 Common::Point const&) const (celobj32.cpp:868)
 ==32727==    by 0x1938573: Sci::CelObj::draw(Graphics::Surface&,
 Sci::ScreenItem const&, Common::Rect const&) const (celobj32.cpp:574)
 ==32727==    by 0x19385BE: Sci::CelObj::draw(Graphics::Surface&,
 Sci::ScreenItem const&, Common::Rect const&, bool) (celobj32.cpp:584)
 ==32727==    by 0x194DDDE:
 Sci::GfxFrameout::drawScreenItemList(Sci::DrawList const&)
 (frameout.cpp:930)
 ==32727==    by 0x194BDBA: Sci::GfxFrameout::frameOut(bool, Common::Rect
 const&) (frameout.cpp:432)
 ==32727==    by 0x1961622: Sci::GfxTransitions32::processShowStyles()
 (transitions32.cpp:126)
 ==32727==    by 0x194EAD4: Sci::GfxFrameout::kernelFrameOut(bool)
 (frameout.cpp:1137)
 ==32727==    by 0x1933E56: Sci::kFrameOut(Sci::EngineState*, int,
 Sci::reg_t*) (kgraphics32.cpp:235)
 ==32727==    by 0x18D97EA: Sci::callKernelFunc(Sci::EngineState*, int,
 int) (vm.cpp:376)
 ==32727==  Address 0xffffffffffffffff is not stack'd, malloc'd or
 (recently) free'd
 ==32727==
 ==32727==
 ==32727== Process terminating with default action of signal 11 (SIGSEGV)
 ==32727==  Access not within mapped region at address 0xFFFFFFFFFFFFFFFF
 ==32727==    at 0x1944F6C: Sci::SCALER_Scale<false,
 Sci::READER_Compressed>::read() (celobj32.cpp:303)
 ==32727==    by 0x1943F08: Sci::RENDERER<Sci::MAPPER_NoMD,
 Sci::SCALER_Scale<false, Sci::READER_Compressed>,
 false>::draw(Graphics::Surface&, Common::Rect const&, Common::Point
 const&) const (celobj32.cpp:737)
 ==32727==    by 0x193E08F: void Sci::CelObj::render<Sci::MAPPER_NoMD,
 Sci::SCALER_Scale<false, Sci::READER_Compressed> >(Graphics::Surface&,
 Common::Rect const&, Common::Point const&, Common::Rational const&,
 Common::Rational const&) const (celobj32.cpp:764)
 ==32727==    by 0x193920E: Sci::CelObj::scaleDrawNoMD(Graphics::Surface&,
 Common::Rational const&, Common::Rational const&, Common::Rect const&,
 Common::Point const&) const (celobj32.cpp:868)
 ==32727==    by 0x1938573: Sci::CelObj::draw(Graphics::Surface&,
 Sci::ScreenItem const&, Common::Rect const&) const (celobj32.cpp:574)
 ==32727==    by 0x19385BE: Sci::CelObj::draw(Graphics::Surface&,
 Sci::ScreenItem const&, Common::Rect const&, bool) (celobj32.cpp:584)
 ==32727==    by 0x194DDDE:
 Sci::GfxFrameout::drawScreenItemList(Sci::DrawList const&)
 (frameout.cpp:930)
 ==32727==    by 0x194BDBA: Sci::GfxFrameout::frameOut(bool, Common::Rect
 const&) (frameout.cpp:432)
 ==32727==    by 0x1961622: Sci::GfxTransitions32::processShowStyles()
 (transitions32.cpp:126)
 ==32727==    by 0x194EAD4: Sci::GfxFrameout::kernelFrameOut(bool)
 (frameout.cpp:1137)
 ==32727==    by 0x1933E56: Sci::kFrameOut(Sci::EngineState*, int,
 Sci::reg_t*) (kgraphics32.cpp:235)
 ==32727==    by 0x18D97EA: Sci::callKernelFunc(Sci::EngineState*, int,
 int) (vm.cpp:376)
 ==32727==  If you believe this happened as a result of a stack
 ==32727==  overflow in your program's main thread (unlikely but
 ==32727==  possible), you can try to increase the size of the
 ==32727==  main thread stack using the --main-stacksize= flag.
 ==32727==  The main thread stack size used in this run was 8388608.
 ==32727==
 ==32727== HEAP SUMMARY:
 ==32727==     in use at exit: 19,947,013 bytes in 41,110 blocks
 ==32727==   total heap usage: 122,545 allocs, 81,435 frees, 50,501,332
 bytes allocated
 ==32727==
 ==32727== LEAK SUMMARY:
 ==32727==    definitely lost: 176 bytes in 3 blocks
 ==32727==    indirectly lost: 176 bytes in 4 blocks
 ==32727==      possibly lost: 496,499 bytes in 3,190 blocks
 ==32727==    still reachable: 19,450,162 bytes in 37,913 blocks
 ==32727==                       of which reachable via heuristic:
 ==32727==                         multipleinheritance: 24 bytes in 1
 blocks
 ==32727==         suppressed: 0 bytes in 0 blocks
 ==32727== Rerun with --leak-check=full to see details of leaked memory
 ==32727==
 ==32727== For counts of detected and suppressed errors, rerun with: -v
 ==32727== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 1)
 Segmentation fault
 }}}

--
Ticket URL: <https://bugs.scummvm.org/ticket/10568#comment:2>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list