Sign in to follow this  
Followers 0

Segfaults, demos and r1114

If you load up Alien Vendetta and let the first demo play, Eternity will segfault after a while. The crash occurs shortly after the second player gets killed.

Some gdb output...

siggi@wedge:~/eternity/trunk/source$ ETERNITYBASE='~/.eternity/base' gdb --args ./eternity -file ~/wads/av.wad
GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/siggi/eternity/trunk/source/eternity...done.
(gdb) start
Temporary breakpoint 1 at 0x4b59d0: file i_main.c, line 71.
Starting program: /home/siggi/eternity/trunk/source/eternity -file /home/siggi/wads/av.wad
[Thread debugging using libthread_db enabled]

Temporary breakpoint 1, main (argc=3, argv=0x7fffffffe278) at i_main.c:71
71	{
(gdb) continue
Continuing.
The Eternity Engine
Copyright 2010 James Haley and Stephen McGranahan
http://www.doomworld.com/eternity

This program is free software distributed under the terms of
the GNU General Public License. See the file "COPYING" for
full details. Commercial sale or distribution of this product
without its license, source code, and copyright notices is an
infringement of US and international copyright laws.

Base path set by environment.
M_LoadSysConfig: Loading base/system.cfg
IWAD found: /home/siggi/wads/doom2.wad
DOOM II version

Built on Apr 12 2010 at 22:26:06
M_LoadDefaults: Load system defaults.
W_Init: Init WADfiles.
 adding /home/siggi/.eternity/base/doom/eternity.wad
 adding /home/siggi/wads/doom2.wad
 adding /home/siggi/wads/av.wad

E_ProcessEDF: Loading root file /home/siggi/.eternity/base/root.edf
V_InitMisc: Init miscellaneous video patches.
C_Init: Init console.
I_Init: Setting up machine state.
[New Thread 0x7fffedf75910 (LWP 328)]
[Thread 0x7fffedf75910 (LWP 328) exited]
[New Thread 0x7fffedf75910 (LWP 329)]
[New Thread 0x7fffed774910 (LWP 330)]
I_InitSound: Configured audio device with 2048 samples/slice.
I_InitMusic: Using SDL_mixer.
D_SetGraphicsMode: Set graphics mode

Program received signal SIGSEGV, Segmentation fault.
0x00000000004325dc in G_CheckSpot (playernum=496, mthing=<value optimized out>) at g_game.c:2442
2442	   mo = P_SpawnMobj(x + 20*finecosine[an], 
(gdb)

Share this post


Link to post
Siggi said:

Program received signal SIGSEGV, Segmentation fault.
0x00000000004325dc in G_CheckSpot (playernum=496, mthing=<value optimized out>) at g_game.c:2442
2442 mo = P_SpawnMobj(x + 20*finecosine[an],
(gdb)
[/code]

Thanks that's all I need. This is the "ninja spawn" phenomenon, caused by an out-of-range access to the finecosine/finesine tables. This has never caused a crash in any version so far, but I guess 64-bit is different :)

We'll have to fix this finally :P I wasn't even aware of the problem until last week :>

Share this post


Link to post

Just in case my response on irc was missed.
As of r1116, this crash no longer occurs. :)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0