This is a precondition check; whatever is calling gtk_container_foreach()
is doing so with an invalid pointer. That’s extremely unlikely to be caused by something GTK is doing internally
You should use thread apply all backtrace
in GDB before run
, so that you get a full backtrace on all threads.
Thread 1 "Main Thread" received signal SIGSEGV, Segmentation fault.
0x00007ffff24d5e20 in tcmalloc::Abort() () from /mnt/DATA/Unity/Editors/2019.4.2f1/Editor/libcef.so
(gdb) bt
#0 0x00007ffff24d5e20 in tcmalloc::Abort() () at /mnt/DATA/Unity/Editors/2019.4.2f1/Editor/libcef.so
#1 0x00007ffff24e3018 in tcmalloc::Log(tcmalloc::LogMode, char const*, int, tcmalloc::LogItem, tcmalloc::LogItem, tcmalloc::LogItem, tcmalloc::LogItem) () at /mnt/DATA/Unity/Editors/2019.4.2f1/Editor/libcef.so
#2 0x00007ffff24eea74 in (anonymous namespace)::InvalidFree(void*) () at /mnt/DATA/Unity/Editors/2019.4.2f1/Editor/libcef.so
#3 0x00007ffec3c75d78 in llvm::DenseMapBase<llvm::DenseMap<void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >, void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >::InsertIntoBucketImpl<void const*>(void const* const&, void const* const&, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*>*) (this=0x7fffe96f5088, TheBucket=0x69, Key=<optimized out>, Lookup=<optimized out>) at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/lib/IR/PassRegistry.cpp:52
#4 llvm::DenseMapBase<llvm::DenseMap<void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >, void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >::InsertIntoBucket<void const*, llvm::PassInfo const*>(llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*>*, void const*&&, llvm::PassInfo const*&&) (this=0x7fffe96f5088, TheBucket=0x69, Key=<optimized out>, Values=<optimized out>) at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/include/llvm/ADT/DenseMap.h:547
#5 llvm::DenseMapBase<llvm::DenseMap<void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >, void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >::try_emplace<llvm::PassInfo const*>(void const*&&, llvm::PassInfo const*&&) (this=0x7fffe96f5088, Key=<optimized out>, Args=<optimized out>)
at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/include/llvm/ADT/DenseMap.h:234
#6 llvm::DenseMapBase<llvm::DenseMap<void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >, void const*, llvm::PassInfo const*, llvm::DenseMapInfo<void const*, void>, llvm::detail::DenseMapPair<void const*, llvm::PassInfo const*> >::insert(std::pair<void const*, llvm::PassInfo const*>&&) (this=0x7fffe96f5088, KV=<optimized out>)
at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/include/llvm/ADT/DenseMap.h:215
#7 llvm::PassRegistry::registerPass(llvm::PassInfo const&, bool) (this=0x7ffeca2885e0 <_ZZN4llvm12PassRegistry15getPassRegistryEvE15PassRegistryObj.llvm.3815807359131815657>, PI=..., ShouldFree=true)
at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/lib/IR/PassRegistry.cpp:52
#8 0x00007ffec5f048ef in initializeSIPeepholeSDWAPassOnce(llvm::PassRegistry&) (Registry=...) at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/lib/Target/AMDGPU/SIPeepholeSDWA.cpp:188
#9 0x00007fffeb76aaf3 in __pthread_once_slow (once_control=0x7ffeca2e0298 <_ZL32InitializeSIPeepholeSDWAPassFlag.llvm.15594638679948419341>, init_routine=0x55555ac0b2e0 <__once_proxy>) at pthread_once.c:116
#10 0x00007ffec5d99b20 in __gthread_once(int*, void (*)()) (__once=0x7fffe96f5088, __func=0x7fffffffbb60) at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/x86_64-redhat-linux/bits/gthr-default.h:700
#11 std::call_once<void* (&)(llvm::PassRegistry&), std::reference_wrapper<llvm::PassRegistry> >(std::once_flag&, void* (&)(llvm::PassRegistry&), std::reference_wrapper<llvm::PassRegistry>&&)
(__once=..., __f=<error reading variable: Cannot access memory at address 0x69>, __args=...) at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/mutex:907
#12 llvm::call_once<void* (&)(llvm::PassRegistry&), std::reference_wrapper<llvm::PassRegistry> >(std::once_flag&, void* (&)(llvm::PassRegistry&), std::reference_wrapper<llvm::PassRegistry>&&)
(flag=..., F=<error reading variable: Cannot access memory at address 0x69>, ArgList=...) at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/include/llvm/Support/Threading.h:89
#13 llvm::initializeSIPeepholeSDWAPass(llvm::PassRegistry&) (Registry=<optimized out>) at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/lib/Target/AMDGPU/SIPeepholeSDWA.cpp:188
#14 LLVMInitializeAMDGPUTarget() () at /usr/src/debug/llvm-16.0.5-1.fc38.x86_64/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:356
#15 0x00007ffecada1e05 in ac_init_llvm_target () at ../src/amd/llvm/ac_llvm_util.c:42
#16 0x00007fffeb76aaf3 in __pthread_once_slow (once_control=0x7ffecc13a768 <ac_init_llvm_target_once_flag>, init_routine=0x7ffecada1de0 <ac_init_llvm_target>) at pthread_once.c:116
#17 0x00007fffeb76abf5 in ___pthread_once (once_control=<optimized out>, init_routine=<optimized out>) at pthread_once.c:143
#18 0x00007fffeb76e2f9 in __call_once (flag=<optimized out>, func=<optimized out>) at ../sysdeps/pthread/call_once.c:31
#19 0x00007ffecada1e87 in ac_init_shared_llvm_once () at ../src/amd/llvm/ac_llvm_util.c:71
#20 0x00007ffecada1e99 in ac_init_llvm_once () at ../src/amd/llvm/ac_llvm_util.c:85
#21 0x00007ffecacbfb99 in radeonsi_screen_create (fd=97, config=0x7fffffffbf00) at ../src/gallium/drivers/radeonsi/si_pipe.c:1484
This is an invalid free in the Radeon Mesa driver when initialising GL, nothing to do with GTK.