Use this version, and a "Release" compile of 7a1274a.
1. Run once to make sure the titular player class is set.
2. Run again with the following parameters: -nomusic -noautoload +map map15 +set sv_cheats 1
3. IDDQD.
4. Fire the BFG.
5. If it does not crash, quit and repeat from step 2. It eventually will.
I have the +set sv_cheats 1 only because I could not initially replicate this crash outside of deathmatch. Turns out it happens in single and -host 1 as well, though it seems to do so less often in single.
GDB output:
Code: Select all
...
[New Thread 0x7fffd37fe700 (LWP 10443)]
[Thread 0x7fffd37fe700 (LWP 10443) exited]
Program received signal SIGSEGV, Segmentation fault.
0x0000000000835ae8 in GC::Mark(DObject**) ()
(gdb) thread 1
[Switching to thread 1 (Thread 0x7ffff7fbe740 (LWP 9917))]
#0 0x0000000000835ae8 in GC::Mark(DObject**) ()
(gdb) bt
#0 0x0000000000835ae8 in GC::Mark(DObject**) ()
#1 0x0000000000835538 in DObject::PropagateMark() ()
#2 0x000000000083b568 in DThinker::PropagateMark() ()
#3 0x0000000000835bb8 in GC::Step() ()
#4 0x000000000083b152 in DThinker::TickThinkers(FThinkerList*, FThinkerList*)
()
#5 0x000000000083aed0 in DThinker::RunThinkers() ()
#6 0x0000000000930e53 in P_Ticker() ()
#7 0x00000000008456ba in G_Ticker() ()
#8 0x000000000082b34f in TryRunTics() ()
#9 0x0000000000823cc5 in D_DoomLoop() ()
#10 0x0000000000826ea3 in D_DoomMain() ()
#11 0x0000000000561900 in main ()
(gdb) Quit
(gdb) thread 1
[Switching to thread 1 (Thread 0x7ffff7fbe740 (LWP 9917))]
#0 0x0000000000835ae8 in GC::Mark(DObject**) ()
(gdb) bt
#0 0x0000000000835ae8 in GC::Mark(DObject**) ()
#1 0x0000000000835538 in DObject::PropagateMark() ()
#2 0x000000000083b568 in DThinker::PropagateMark() ()
#3 0x0000000000835bb8 in GC::Step() ()
#4 0x000000000083b152 in DThinker::TickThinkers(FThinkerList*, FThinkerList*)
()
#5 0x000000000083aed0 in DThinker::RunThinkers() ()
#6 0x0000000000930e53 in P_Ticker() ()
#7 0x00000000008456ba in G_Ticker() ()
#8 0x000000000082b34f in TryRunTics() ()
#9 0x0000000000823cc5 in D_DoomLoop() ()
#10 0x0000000000826ea3 in D_DoomMain() ()
#11 0x0000000000561900 in main ()
(gdb) q
A debugging session is active.
Inferior 1 [process 9917] will be killed.
Quit anyway? (y or n) y