Skip to content

Conversation

@SiskaPavel
Copy link
Collaborator

@SiskaPavel SiskaPavel commented Jul 7, 2025

Summary

Handle SIGABRT alongside SIGSEGV to improve diagnostic capabilities during abnormal termination, especially when triggered by libunwind, sanitizers, or runtime assertions.

Details

This PR updates the signal handling mechanism to treat SIGABRT similarly to SIGSEGV.
When the application receives SIGABRT (e.g. due to abort(), failed assert(), or sanitizers), it now properly invokes st_dump() to capture diagnostic output.
The handler then exits using exit(EXIT_FAILURE) instead of abort() to prevent recursive signal triggering.

This ensures that crashes triggered by internal runtime mechanisms (like libunwind, ASan, or failed invariants) are logged consistently.


✅ Checks

  • CI pipeline passes (build, tests, lint, static analysis)
  • New code follows clang-tidy rules
  • The change is clearly related to a specific issue / requirement
  • The PR is rebased on the latest master
  • No unrelated changes are included
    - [ ] Documentation (e.g. Doxygen) is updated if needed
    - [ ] Relevant documentation was updated (if needed)

@SiskaPavel SiskaPavel self-assigned this Jul 7, 2025
@SiskaPavel SiskaPavel requested a review from hynekkar July 7, 2025 15:00
@SiskaPavel SiskaPavel merged commit 0d22c81 into master Jul 8, 2025
7 checks passed
@SiskaPavel SiskaPavel deleted the unwind-handle-sigabrt branch July 8, 2025 09:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants