clementgallet / libTAS

GNU/Linux software to (hopefully) give TAS tools to games
GNU General Public License v3.0
492 stars 58 forks source link

Starbound Segmentation Fault #428

Open feuerball11 opened 3 years ago

feuerball11 commented 3 years ago

Starbound sadly goes into an Segmentation Fault.

May be related with #353

Reading symbols from /home/ignatz/.steam/steam/steamapps/common/Starbound/linux/starbound...
Signal        Stop  Print   Pass to program Description
SIGSYS        No    No  Yes     Bad system call
SIGXCPU       No    No  Yes     CPU time limit exceeded
SIGXFSZ       No    No  Yes     File size limit exceeded
SIGUSR1       No    No  Yes     User defined signal 1
SIGUSR2       No    No  Yes     User defined signal 2
SIGPWR        No    No  Yes     Power fail/restart
SIG35         No    No  Yes     Real-time event 35
SIG36         No    No  Yes     Real-time event 36
Starting program: /home/ignatz/.local/share/Steam/steamapps/common/Starbound/linux/starbound 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Attempt 1: Couldn't connect to socket.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7cdbefb in pthread_key_create () from /usr/bin/libtas.so
(gdb) Attempt 2: Couldn't connect to socket.
Attempt 3: Couldn't connect to socket.
Attempt 4: Couldn't connect to socket.
Attempt 5: Couldn't connect to socket.
Attempt 6: Couldn't connect to socket.
Attempt 7: Couldn't connect to socket.
Attempt 8: Couldn't connect to socket.
Attempt 9: Couldn't connect to socket.
Attempt 10: Couldn't connect to socket.
recv() returns -1 with error Invalid argument
feuerball11 commented 3 years ago

Here is the error including the line with debug symboles:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7cdc972 in libtas::pthread_key_create (
    key=key@entry=0x1d64f68 <je_tsd_tsd>, 
    destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>)
    at tlswrappers.cpp:56
56  tlswrappers.cpp: No such file or directory.
feuerball11 commented 3 years ago

These are the first and last lines of GDP bt:

#0  0x00007ffff7cd1e28 in libtas::debuglogstdio (lcf=lcf@entry=1073741824, fmt=fmt@entry=0x7ffff7d48cb1 "%s call.") at logging.cpp:36
#1  0x00007ffff7cdc9ea in libtas::pthread_key_create (key=key@entry=0x1d64f68 <je_tsd_tsd>, destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>) at tlswrappers.cpp:62
#2  0x00000000015a3a2f in je_tsd_boot0 () at include/jemalloc/internal/tsd.h:658
#3  je_malloc_tsd_boot0 () at src/tsd.c:115
#4  0x000000000157424b in malloc_init_hard () at src/jemalloc.c:1415
#5  0x0000000001575af5 in malloc_init () at src/jemalloc.c:302
#6  ialloc_body (slow_path=true, usize=<synthetic pointer>, tsdn=<synthetic pointer>, zero=false, size=<optimized out>) at src/jemalloc.c:1498
#7  je_malloc (size=<optimized out>) at src/jemalloc.c:1562
#8  0x0000000000a534d9 in operator new(unsigned long) ()
#9  0x00007ffff7cdce9c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > >::allocate (this=<optimized out>, __n=1)
    at /usr/include/c++/7/ext/new_allocator.h:111
#10 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436
#11 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_get_node (this=this@entry=0x7fffff7ff180) at /usr/include/c++/7/bits/stl_tree.h:588
#12 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_create_node<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffff7ff180) at /usr/include/c++/7/bits/stl_tree.h:642
#13 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_emplace_unique<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffff7ff180) at /usr/include/c++/7/bits/stl_tree.h:2351
#14 0x00007ffff7cdcac4 in std::map<unsigned int, void (*)(void*), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::insert<std::pair<unsigned int, void (*)(void*)> > (__x=..., this=0x7fffff7ff180) at /usr/include/c++/7/bits/stl_map.h:809
#15 libtas::pthread_key_create (key=key@entry=0x1d64f68 <je_tsd_tsd>, destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>) at tlswrappers.cpp:68
#16 0x00000000015a3a2f in je_tsd_boot0 () at include/jemalloc/internal/tsd.h:658
#17 je_malloc_tsd_boot0 () at src/tsd.c:115
#18 0x000000000157424b in malloc_init_hard () at src/jemalloc.c:1415
#19 0x0000000001575af5 in malloc_init () at src/jemalloc.c:302
#20 ialloc_body (slow_path=true, usize=<synthetic pointer>, tsdn=<synthetic pointer>, zero=false, size=<optimized out>) at src/jemalloc.c:1498
#21 je_malloc (size=<optimized out>) at src/jemalloc.c:1562
#22 0x0000000000a534d9 in operator new(unsigned long) ()
#23 0x00007ffff7cdce9c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > >::allocate (this=<optimized out>, __n=1)
    at /usr/include/c++/7/ext/new_allocator.h:111
#24 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436
#25 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_get_node (this=this@entry=0x7fffff7ff2d0) at /usr/include/c++/7/bits/stl_tree.h:588
#26 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_create_node<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffff7ff2d0) at /usr/include/c++/7/bits/stl_tree.h:642
#27 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_emplace_unique<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffff7ff2d0) at /usr/include/c++/7/bits/stl_tree.h:2351
#28 0x00007ffff7cdcac4 in std::map<unsigned int, void (*)(void*), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::insert<std::pair<unsigned int, void (*)(void*)> > (__x=..., this=0x7fffff7ff2d0) at /usr/include/c++/7/bits/stl_map.h:809
#29 libtas::pthread_key_create (key=key@entry=0x1d64f68 <je_tsd_tsd>, destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>) at tlswrappers.cpp:68
#30 0x00000000015a3a2f in je_tsd_boot0 () at include/jemalloc/internal/tsd.h:658
#31 je_malloc_tsd_boot0 () at src/tsd.c:115
#32 0x000000000157424b in malloc_init_hard () at src/jemalloc.c:1415
#33 0x0000000001575af5 in malloc_init () at src/jemalloc.c:302
#34 ialloc_body (slow_path=true, usize=<synthetic pointer>, tsdn=<synthetic pointer>, zero=false, size=<optimized out>) at src/jemalloc.c:1498
#35 je_malloc (size=<optimized out>) at src/jemalloc.c:1562
#36 0x0000000000a534d9 in operator new(unsigned long) ()
#37 0x00007ffff7cdce9c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > >::allocate (this=<optimized out>, __n=1)
    at /usr/include/c++/7/ext/new_allocator.h:111
#38 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436
#39 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_get_node (this=this@entry=0x7fffff7ff420) at /usr/include/c++/7/bits/stl_tree.h:588
[.....]
#349254 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436
#349255 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_get_node (this=this@entry=0x7fffffffd730) at /usr/include/c++/7/bits/stl_tree.h:588
#349256 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_create_node<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffd730) at /usr/include/c++/7/bits/stl_tree.h:642
#349257 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_emplace_unique<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffd730) at /usr/include/c++/7/bits/stl_tree.h:2351
#349258 0x00007ffff7cdcac4 in std::map<unsigned int, void (*)(void*), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::insert<std::pair<unsigned int, void (*)(void*)> > (__x=..., this=0x7fffffffd730) at /usr/include/c++/7/bits/stl_map.h:809
#349259 libtas::pthread_key_create (key=key@entry=0x1d64f68 <je_tsd_tsd>, destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>) at tlswrappers.cpp:68
#349260 0x00000000015a3a2f in je_tsd_boot0 () at include/jemalloc/internal/tsd.h:658
#349261 je_malloc_tsd_boot0 () at src/tsd.c:115
#349262 0x000000000157424b in malloc_init_hard () at src/jemalloc.c:1415
#349263 0x0000000001575af5 in malloc_init () at src/jemalloc.c:302
#349264 ialloc_body (slow_path=true, usize=<synthetic pointer>, tsdn=<synthetic pointer>, zero=false, size=<optimized out>) at src/jemalloc.c:1498
#349265 je_malloc (size=<optimized out>) at src/jemalloc.c:1562
#349266 0x0000000000a534d9 in operator new(unsigned long) ()
#349267 0x00007ffff7cdce9c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > >::allocate (this=<optimized out>, __n=1) at /usr/include/c++/7/ext/new_allocator.h:111
#349268 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436
#349269 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_get_node (this=this@entry=0x7fffffffd880) at /usr/include/c++/7/bits/stl_tree.h:588
#349270 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_create_node<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffd880) at /usr/include/c++/7/bits/stl_tree.h:642
#349271 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_emplace_unique<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffd880) at /usr/include/c++/7/bits/stl_tree.h:2351
#349272 0x00007ffff7cdcac4 in std::map<unsigned int, void (*)(void*), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::insert<std::pair<unsigned int, void (*)(void*)> > (__x=..., this=0x7fffffffd880) at /usr/include/c++/7/bits/stl_map.h:809
#349273 libtas::pthread_key_create (key=key@entry=0x1d64f68 <je_tsd_tsd>, destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>) at tlswrappers.cpp:68
#349274 0x00000000015a3a2f in je_tsd_boot0 () at include/jemalloc/internal/tsd.h:658
#349275 je_malloc_tsd_boot0 () at src/tsd.c:115
#349276 0x000000000157424b in malloc_init_hard () at src/jemalloc.c:1415
#349277 0x0000000001575af5 in malloc_init () at src/jemalloc.c:302
#349278 ialloc_body (slow_path=true, usize=<synthetic pointer>, tsdn=<synthetic pointer>, zero=false, size=<optimized out>) at src/jemalloc.c:1498
#349279 je_malloc (size=<optimized out>) at src/jemalloc.c:1562
#349280 0x0000000000a534d9 in operator new(unsigned long) ()
#349281 0x00007ffff7cdce9c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > >::allocate (this=<optimized out>, __n=1) at /usr/include/c++/7/ext/new_allocator.h:111
#349282 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436
#349283 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_get_node (this=this@entry=0x7fffffffd9d0) at /usr/include/c++/7/bits/stl_tree.h:588
#349284 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_create_node<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffd9d0) at /usr/include/c++/7/bits/stl_tree.h:642
#349285 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_emplace_unique<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffd9d0) at /usr/include/c++/7/bits/stl_tree.h:2351
#349286 0x00007ffff7cdcac4 in std::map<unsigned int, void (*)(void*), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::insert<std::pair<unsigned int, void (*)(void*)> > (__x=..., this=0x7fffffffd9d0) at /usr/include/c++/7/bits/stl_map.h:809
#349287 libtas::pthread_key_create (key=key@entry=0x1d64f68 <je_tsd_tsd>, destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>) at tlswrappers.cpp:68
#349288 0x00000000015a3a2f in je_tsd_boot0 () at include/jemalloc/internal/tsd.h:658
#349289 je_malloc_tsd_boot0 () at src/tsd.c:115
#349290 0x000000000157424b in malloc_init_hard () at src/jemalloc.c:1415
#349291 0x0000000001575af5 in malloc_init () at src/jemalloc.c:302
#349292 ialloc_body (slow_path=true, usize=<synthetic pointer>, tsdn=<synthetic pointer>, zero=false, size=<optimized out>) at src/jemalloc.c:1498
#349293 je_malloc (size=<optimized out>) at src/jemalloc.c:1562
#349294 0x0000000000a534d9 in operator new(unsigned long) ()
#349295 0x00007ffff7cdce9c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > >::allocate (this=<optimized out>, __n=1) at /usr/include/c++/7/ext/new_allocator.h:111
#349296 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, void (*)(void*)> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436
#349297 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_get_node (this=this@entry=0x7fffffffdb20) at /usr/include/c++/7/bits/stl_tree.h:588
#349298 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_create_node<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffdb20) at /usr/include/c++/7/bits/stl_tree.h:642
#349299 std::_Rb_tree<unsigned int, std::pair<unsigned int const, void (*)(void*)>, std::_Select1st<std::pair<unsigned int const, void (*)(void*)> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::_M_emplace_unique<std::pair<unsigned int, void (*)(void*)> > (this=this@entry=0x7fffffffdb20) at /usr/include/c++/7/bits/stl_tree.h:2351
#349300 0x00007ffff7cdcac4 in std::map<unsigned int, void (*)(void*), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, void (*)(void*)> > >::insert<std::pair<unsigned int, void (*)(void*)> > (__x=..., this=0x7fffffffdb20) at /usr/include/c++/7/bits/stl_map.h:809
#349301 libtas::pthread_key_create (key=key@entry=0x1d64f68 <je_tsd_tsd>, destr_function=destr_function@entry=0x15a3890 <je_tsd_cleanup>) at tlswrappers.cpp:68
#349302 0x00000000015a3a2f in je_tsd_boot0 () at include/jemalloc/internal/tsd.h:658
#349303 je_malloc_tsd_boot0 () at src/tsd.c:115
#349304 0x000000000157424b in malloc_init_hard () at src/jemalloc.c:1415
#349305 0x0000000001575af5 in malloc_init () at src/jemalloc.c:302
#349306 ialloc_body (slow_path=true, usize=<synthetic pointer>, tsdn=<synthetic pointer>, zero=false, size=<optimized out>) at src/jemalloc.c:1498
#349307 je_malloc (size=<optimized out>) at src/jemalloc.c:1562
#349308 0x0000000000a534d9 in operator new(unsigned long) ()
#349309 0x00007ffff7ccb27f in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*> (this=this@entry=0x7fffffffdc90, __beg=0x7ffff7fc7140 "/usr/bin/libtas.so", __end=<optimized out>) at /usr/include/c++/7/bits/basic_string.tcc:219
#349310 0x00007ffff7ccbb2b in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*> (__end=<optimized out>, __beg=<optimized out>, this=0x7fffffffdc90) at /usr/include/c++/7/bits/basic_string.h:236
#349311 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*> (__end=<optimized out>, __beg=<optimized out>, this=0x7fffffffdc90) at /usr/include/c++/7/bits/basic_string.h:255
#349312 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__a=..., __s=<optimized out>, this=0x7fffffffdc90) at /usr/include/c++/7/bits/basic_string.h:511
#349313 libtas::find_sym (name=name@entry=0x7ffff6e26daa "pthread_create", original=original@entry=false) at dlhook.cpp:221
#349314 0x00007ffff7ccbd42 in libtas::dlsym (handle=0x0, name=<optimized out>) at dlhook.cpp:335
#349315 0x00007ffff6dd7e6e in ?? () from /lib/x86_64-linux-gnu/libGLdispatch.so.0
#349316 0x00007ffff6dd625d in ?? () from /lib/x86_64-linux-gnu/libGLdispatch.so.0
#349317 0x00007ffff7fe0b8a in ?? () from /lib64/ld-linux-x86-64.so.2
#349318 0x00007ffff7fe0c91 in ?? () from /lib64/ld-linux-x86-64.so.2
#349319 0x00007ffff7fd013a in ?? () from /lib64/ld-linux-x86-64.so.2
clementgallet commented 2 years ago

Indeed there's another issue with jemalloc, I need to grab a game that uses it.