Skip to content

[C++] Regression in 4.3: std::set_terminate fails to set termination handler #1576

@int-72h

Description

@int-72h

Tested versions

  • Reproducible in 4.3.stable
  • Not reproducible in 4.2.2.stable

System information

Arch Linux - Ryzen 5 5600X (x86_64)

Issue description

The C++ function std::set_terminate sets the termination function when an exception's not handled. In Godot 4.3.stable, this function doesn't seem to do anything: the stock termination handler is always used. In 4.2.2.stable, this issue isn't there - the function is called.
This doesn't seem to depend on the version of godot_cpp - same version is used (latest) therefore the bug's in the main engine presumably.

Steps to reproduce

  • Download the MRP
  • git submodule update --init to obtain godot-cpp
  • Use scons to build the library + godot-cpp
  • Open the project using godot 4.2.2 (with console). It will crash, however the terminate handler will be called, printing a few extra lines before crashing.
  • Launch godot 4.3 (with console output)
  • Open the project. It will also crash, however the output will be of the standard C++ terminate handler.

Minimal reproduction project (MRP)

mrp.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis has been identified as a bugneeds testing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions