Solved Godot debugger crash

Code:
Godot Engine v4.2.1.stable.FreeBSD_Ports_build - https://godotengine.org
OpenGL API 3.3.0 NVIDIA 470.161.03 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce GTX 650
 

================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.2.1.stable.FreeBSD_Ports_build
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] 0x82cc02410 <pthread_sigmask+0x540> at /lib/libthr.so.3 (??:0)
[2] 0x82cc019cb <pthread_setschedparam+0x84b> at /lib/libthr.so.3 (??:0)
[3] 0x826dae2d3 <???> at ??? (??:0)
-- END OF BACKTRACE --
================================================================

I've been trying godot-recently recently and found that the debugger won't work, if I set a breakpoint (or make a mistake) running the scene causes a core file.
 
Last edited by a moderator:
I'd suggest creating a bug report (after checking whether there's an existing one).
Make sure you leave all the relevant details (such as your hardware, the exact OS version, package version, where you got the package from (i.e. official binary repos, self-built, ...).
 
I've been trying again and got more details:
Code:
Executable module set to "/usr/local/bin/godot-tools".
Architecture set to: x86_64-unknown-freebsd14.2.
(lldb) continue
Process 1585 resuming
Process 1585 stopped
* thread #1, name = 'godot-tools', stop reason = signal SIGILL: privileged opcode
    frame #0: 0x000000082b89566f libc++.so.1`std::__1::recursive_mutex::unlock() + 15
libc++.so.1`std::__1::recursive_mutex::unlock:
->  0x82b89566f <+15>: ud2    
    0x82b895671 <+17>: movq   %rax, %rdi
    0x82b895674 <+20>: callq  0x82b844060    ; ___lldb_unnamed_symbol2709
    0x82b895679:       int3   
(lldb) disassemble
libc++.so.1`std::__1::recursive_mutex::unlock:
    0x82b895660 <+0>:  pushq  %rbp
    0x82b895661 <+1>:  movq   %rsp, %rbp
    0x82b895664 <+4>:  callq  0x82b8a44d0    ; symbol stub for: pthread_mutex_unlock
    0x82b895669 <+9>:  testl  %eax, %eax
    0x82b89566b <+11>: jne    0x82b89566f    ; <+15>
    0x82b89566d <+13>: popq   %rbp
    0x82b89566e <+14>: retq   
->  0x82b89566f <+15>: ud2    
    0x82b895671 <+17>: movq   %rax, %rdi
    0x82b895674 <+20>: callq  0x82b844060    ; ___lldb_unnamed_symbol2709
I think it's similar to other bug reports were there is a missing unlock() but I don't know how to proceed further.
 
The ud2 instruction does nothing except raises the undefined instruction mechanism. libc++ uses it for things like array bounds checking when it can't or doesn't want to raise an exception.

Chances are that your mutex is invalid.
 
Back
Top