I am getting an error on exit with this version. 3.2.4 would not produce this error. This on GNU/Linux ARM (Raspbian) on a Raspberry Pi 3. This is build against latest stable SDL 2.0.8, using Raspbian's default gcc 6.3.0.
The error occurs as I confirm the exit with "y":
Code: Select all
*** Error in `/home/pi/doom/gzdoom': corrupted double-linked list: 0x02847468 ***
[New Thread 0x75489400 (LWP 6208)]
[Thread 0x75489400 (LWP 6208) exited]
[New Thread 0x75489400 (LWP 6209)]
[New Thread 0x75489400 (LWP 6210)]
[Thread 0x75489400 (LWP 6209) exited]
Thread 1 "gzdoom" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x76afb824 in __GI_abort () at abort.c:89
#2 0x76b34f78 in __libc_message (do_abort=do_abort@entry=2, fmt=<optimized out>)
at ../sysdeps/posix/libc_fatal.c:175
#3 0x76b3bad4 in malloc_printerr (action=<optimized out>, str=0x76bedfb4 "corrupted double-linked list",
ptr=<optimized out>, ar_ptr=<optimized out>) at malloc.c:5049
#4 0x76b3cd28 in _int_free (av=0x76c0a794 <main_arena>, p=0x2847100, have_lock=0) at malloc.c:4052
#5 0x00b8060c in M_Free (block=0x2847398) at /home/pi/src/gzdoom-g3.3.0/src/m_alloc.cpp:208
#6 0x00b2c200 in TArray<VMFunction*, VMFunction*>::~TArray (this=0x21fc7d4, __in_chrg=<optimized out>)
at /home/pi/src/gzdoom-g3.3.0/src/tarray.h:215
#7 0x00b29838 in PClass::~PClass (this=0x21fc7a8, __in_chrg=<optimized out>)
at /home/pi/src/gzdoom-g3.3.0/src/dobjtype.cpp:320
#8 0x00b294b8 in PClass::StaticShutdown () at /home/pi/src/gzdoom-g3.3.0/src/dobjtype.cpp:284
#9 0x006d9a80 in call_terms () at /home/pi/src/gzdoom-g3.3.0/src/posix/sdl/i_main.cpp:131
#10 0x76afcdd4 in __run_exit_handlers (status=0, listp=0x76c0a4ac <__exit_funcs>,
run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:83
#11 0x76afce34 in __GI_exit (status=<optimized out>) at exit.c:105
#12 0x006e0034 in ST_Endoom () at /home/pi/src/gzdoom-g3.3.0/src/posix/sdl/st_start.cpp:353
#13 0x00ebe9c8 in <lambda()>::operator()(void) const (__closure=0x0)
at /home/pi/src/gzdoom-g3.3.0/src/menu/messagebox.cpp:119
#14 0x00ebe9f8 in <lambda()>::_FUN(void) () at /home/pi/src/gzdoom-g3.3.0/src/menu/messagebox.cpp:120
#15 0x00ebe65c in AF_DMessageBoxMenu_CallHandler (param=0x21753a0, defaultparam=..., numparam=1,
ret=0x7effda40, numret=0) at /home/pi/src/gzdoom-g3.3.0/src/menu/messagebox.cpp:57
#16 0x01000c9c in VMExec_Checked::Exec (stack=0x76ff44c8, pc=0x1cca708, ret=0x7effded0, numret=0)
at /home/pi/src/gzdoom-g3.3.0/src/scripting/vm/vmexec.h:702
#17 0x01000d44 in VMExec_Checked::Exec (stack=0x76ff44c8, pc=0x1ccaa00, ret=0x7effe3cc, numret=1)
at /home/pi/src/gzdoom-g3.3.0/src/scripting/vm/vmexec.h:721
#18 0x0101b2b0 in VMCall (func=0x26be4bc, params=0x7effe398, numparams=3, results=0x7effe3cc, numresults=1)
at /home/pi/src/gzdoom-g3.3.0/src/scripting/vm/vmframe.cpp:463
---Type <return> to continue, or q <return> to quit---
#19 0x00eae458 in DMenu::CallMenuEvent (this=0x275e6f0, mkey=6, fromcontroller=false)
at /home/pi/src/gzdoom-g3.3.0/src/menu/menu.cpp:219
#20 0x00eb0864 in M_Responder (ev=0x13ddb10 <events+96>) at /home/pi/src/gzdoom-g3.3.0/src/menu/menu.cpp:690
#21 0x00aff4c4 in D_ProcessEvents () at /home/pi/src/gzdoom-g3.3.0/src/d_main.cpp:304
#22 0x00b0f450 in NetUpdate () at /home/pi/src/gzdoom-g3.3.0/src/d_net.cpp:986
#23 0x00b12708 in TryRunTics () at /home/pi/src/gzdoom-g3.3.0/src/d_net.cpp:1841
#24 0x00b01a7c in D_DoomLoop () at /home/pi/src/gzdoom-g3.3.0/src/d_main.cpp:1066
#25 0x00b073e0 in D_DoomMain () at /home/pi/src/gzdoom-g3.3.0/src/d_main.cpp:2757
#26 0x006da318 in main (argc=5, argv=0x7efff754) at /home/pi/src/gzdoom-g3.3.0/src/posix/sdl/i_main.cpp:263
I did a manual debug build (-O0 -ggdb) because passing -DCMAKE_BUILD_TYPE=Debug does not work, either.