btolab / hypseus

Hypseus is a fork of Daphne. A program that "lets one play the original versions of many laserdisc arcade games on one's PC."
GNU General Public License v3.0
18 stars 7 forks source link

Segmentation fault - Linux 32 bit #5

Open OzFalcon opened 8 years ago

OzFalcon commented 8 years ago

Standard Hypseus compiles without any issues. Segmentation fault occurs whenever video tries to display.

./testvldp /home/arcade/zframefile/lair/dl-slates.m2v
Using opengl rendering
Segmentation fault

See attached logs for more information When running with noldp option, Game appears to boot (Boot beeps, Credit sounds)

h0tw1r3 commented 8 years ago

If you could attach a backtrace (run under gdb), that would be very helpful.

OzFalcon commented 8 years ago

Rebuilding........ CMakeLists.txt

option(BENCHMARK    "Benchmark"  OFF)
option(DEBUG        "Debug"      ON)
option(VLDP_DEBUG   "VLDP Debug" ON)
option(CPU_DEBUG    "CPU Debug"  OFF)
option(BUILD_SINGE  "Singe"      OFF)
option(BUILDBOT     "Buildbot"   OFF)
OzFalcon commented 7 years ago

Testvldp

(gdb) exe testvldp
(gdb) run /home/arcade/zframefile/lair/dl-slates.m2v
Starting program: /home/michael/Workbench/bin.hypseus-1.2.x/testvldp /home/arcade/zframefile/lair/dl-slates.m2v
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Using opengl rendering
[New Thread 0xb445bb40 (LWP 31838)]

Thread 2 "vldp" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb445bb40 (LWP 31838)]
0x080678cc in ?? ()
(gdb) bt
#0  0x080678cc in ?? ()
#1  0x00000002 in ?? ()
#2  0xb39d504e in ?? ()
Backtrace stopped: Cannot access memory at address 0xbbe80004
h0tw1r3 commented 7 years ago

Perhaps I should have been more specific. The trace output needs symbols. Enabling the debug options in Cmake is good, but the build type needs to be Debug also. cmake -DCMAKE_BUILD_TYPE=Debug

OzFalcon commented 7 years ago

Update comment to reflect tree https://github.com/btolab/hypseus/commit/365c0e92d4015f2d504e0120f50354ab851f2782 usage

CMakeLists.txt

option(BENCHMARK    "Benchmark"  OFF)
option(DEBUG        "Debug"      ON)
option(VLDP_DEBUG   "VLDP Debug" ON)
option(CPU_DEBUG    "CPU Debug"  OFF)
option(BUILD_SINGE  "Singe"      OFF)
option(BUILDBOT     "Buildbot"   OFF)
cmake -DCMAKE_BUILD_TYPE=debug ../src
make
(gdb) file testvldp 
Reading symbols from testvldp...done.
(gdb) run ../sa-slates.m2v 
Starting program: /home/michael/Workbench/Compile/hypseus-365c0e92d4015f2d504e0120f50354ab851f2782/testvldp ../sa-slates.m2v
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Using opengl rendering
[New Thread 0xb4528b40 (LWP 31653)]

Thread 2 "vldp" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb4528b40 (LWP 31653)]
mpeg2_idct_copy_sse2 (block=0xb3c0054a, dest=0xb39d6040 "", stride=720) at idct_mmx.c:1228
1228        sse2_idct (block);
(gdb) bt
#0  mpeg2_idct_copy_sse2 (block=0xb3c0054a, dest=0xb39d6040 "", stride=720) at idct_mmx.c:1228
#1  0x00418043 in slice_intra_DCT (stride=720, dest=0xb39d6040 "", cc=0, decoder=0xb3c00480) at slice.c:954
#2  mpeg2_slice (decoder=0xb3c00480, code=1, 
    buffer=0xb3ad5040 "\v\374\254&\322}\fk7\273q\253\"\251=\254\061\274*(\250\211\350\336\371\026\207\320\063`\362ѻ.\\W\204\235\032\357\224Z<!\263\373\302\233@\276\215V\314G\020\004\245\300\206\350\022\030/ջ\216\032\001\303\065\020n\244,1\253\277\032\071\227\343\253樍\226tD\302\347\035\002H\001\343\062z(!\177\325\361\244\226ɀ\a\035\006\330\002\346\322\b\237\370\241\247\266r)\274\355\203#X") at slice.c:1908
#3  0x0040d39f in mpeg2_parse (mpeg2dec=0xb3c00480) at decode.c:188
#4  0x0040b0c7 in decode_mpeg2 (current=0x46a4a0 <g_buffer> "", end=0x4aa4a0 <g_header_buf> "")
    at /home/michael/Workbench/Compile/hypseus-365c0e92d4015f2d504e0120f50354ab851f2782/src/vldp/vldp_internal.cpp:418
#5  0x0040b948 in ivldp_render ()
    at /home/michael/Workbench/Compile/hypseus-365c0e92d4015f2d504e0120f50354ab851f2782/src/vldp/vldp_internal.cpp:783
#6  0x0040b7ae in idle_handler_play ()
    at /home/michael/Workbench/Compile/hypseus-365c0e92d4015f2d504e0120f50354ab851f2782/src/vldp/vldp_internal.cpp:686
#7  0x0040ab98 in idle_handler (surface=0x0)
    at /home/michael/Workbench/Compile/hypseus-365c0e92d4015f2d504e0120f50354ab851f2782/src/vldp/vldp_internal.cpp:145
#8  0xb7ef2697 in ?? () from /usr/lib/i386-linux-gnu/libSDL2-2.0.so.0
#9  0xb7f4a338 in ?? () from /usr/lib/i386-linux-gnu/libSDL2-2.0.so.0
#10 0xb771727a in start_thread (arg=0xb4528b40) at pthread_create.c:333
#11 0xb7bb0ae6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:110
(gdb) 
OzFalcon commented 6 years ago

Reading some gdb tutorials to further this investigation.

OzFalcon commented 6 years ago

I'm building with tree https://github.com/btolab/hypseus/commit/365c0e92d4015f2d504e0120f50354ab851f2782

OzFalcon commented 6 years ago

Backtrace updated to include symbols.