2.5.1
- Fix uninitialized g_stackCursor crash in background threads by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/717
- Fix memory safety issues and buffer handling bugs by @naftaly in https://github.com/kstenerud/KSCrash/pull/723
- Fix memory monitor safety improvements by @naftaly in https://github.com/kstenerud/KSCrash/pull/725
- Fix thread safety issues in memory tracking by @naftaly in https://github.com/kstenerud/KSCrash/pull/742
- Fix static analyzer warnings by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/749
- Fix undefined behavior issues detected by UBSan by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/751
- Fix flaky testOtherThreadSymbolicate test by @naftaly in https://github.com/kstenerud/KSCrash/pull/755
- Fix unsigned integer underflow in imageContainingAddress by @naftaly in https://github.com/kstenerud/KSCrash/pull/763
- Add cpu info to backtrace symbolication by @maxep in https://github.com/kstenerud/KSCrash/pull/737
- Update CI runners from macos-13 to macos-14 by @naftaly in https://github.com/kstenerud/KSCrash/pull/728
- Add CI workflow for Clang static analyzer by @naftaly in https://github.com/kstenerud/KSCrash/pull/744
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.5.0...2.5.1
2.5.0
- Fix outdated headerdoc reference in KSCrashInstallation by @alanzeino in https://github.com/kstenerud/KSCrash/pull/710
- Enable module definition in KSCrash podspec by @maxep in https://github.com/kstenerud/KSCrash/pull/714
- Fix watchOS Compilation Errors by @maxep in https://github.com/kstenerud/KSCrash/pull/715
- Fix arm64e build by @maxep in https://github.com/kstenerud/KSCrash/pull/716
- @maxep made their first contribution in https://github.com/kstenerud/KSCrash/pull/714
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.4.0...2.5.0
2.4.0
- Make monitor API functions properly idempotent using atomics by @kstenerud in https://github.com/kstenerud/KSCrash/pull/661
- Add binary architecture field to system info by @DariaKunoichi in https://github.com/kstenerud/KSCrash/pull/669
- Add improved jailbreak detection logic by @DariaKunoichi in https://github.com/kstenerud/KSCrash/pull/666
- Add clang_version, device free storage size and rosetta check fields to system info by @DariaKunoichi in https://github.com/kstenerud/KSCrash/pull/668
- Convert KSCrashMonitor to use a lockless algorithm by @kstenerud in https://github.com/kstenerud/KSCrash/pull/662
- Moved monitor context management into KSCrashMonitor. by @kstenerud in https://github.com/kstenerud/KSCrash/pull/674
- Restore recrash support to the mach exception handler by @kstenerud in https://github.com/kstenerud/KSCrash/pull/675
- Added a policy argument to all callbacks so that callback implementations can more intelligently decide what to do. by @kstenerud in https://github.com/kstenerud/KSCrash/pull/676
- KSFileUtils won't compile standalone without stddef.h by @kstenerud in https://github.com/kstenerud/KSCrash/pull/685
- [KSCRASH] Allow Cancelling Processing/Writting a Crash by @naftaly in https://github.com/kstenerud/KSCrash/pull/680
- [KSCRASH] Add Observers to Memory Tracker by @naftaly in https://github.com/kstenerud/KSCrash/pull/681
- [KSCRASH] Make CPP Monitor more precise by @naftaly in https://github.com/kstenerud/KSCrash/pull/682
- [EASY] Add back start/stop for backwards compat by @naftaly in https://github.com/kstenerud/KSCrash/pull/686
- Fix incorrectly defined KSCRASH_NAMESPACE_STRING by @kstenerud in https://github.com/kstenerud/KSCrash/pull/687
- Pin Tuist version using Mise for consistent environments by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/688
- Clean up pragma and example app warnings by @kstenerud in https://github.com/kstenerud/KSCrash/pull/689
- Fix same self thread backtrace by @naftaly in https://github.com/kstenerud/KSCrash/pull/690
- [2.x] Add backward compatibility for callback API changes by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/684
- Modify KSCrashEventNotifyCallback to return a user-supplied policy by @kstenerud in https://github.com/kstenerud/KSCrash/pull/692
- We should still attempt to record threads even if we can't suspend them. by @kstenerud in https://github.com/kstenerud/KSCrash/pull/693
- Add GitHub Copilot code review instructions for API breaking changes by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/695
- Expose an intermediate struct to the user rather than our internal struct by @kstenerud in https://github.com/kstenerud/KSCrash/pull/694
- Always record the offending thread at least by @kstenerud in https://github.com/kstenerud/KSCrash/pull/696
- Harmonize the callback names by @kstenerud in https://github.com/kstenerud/KSCrash/pull/697
- Fix monitor disabling and uninstalling by @kstenerud in https://github.com/kstenerud/KSCrash/pull/698
- Namespace any important strings, such as paths and thread names by @kstenerud in https://github.com/kstenerud/KSCrash/pull/699
- Fix some latent warning issues by @kstenerud in https://github.com/kstenerud/KSCrash/pull/700
- Fix error pointer checks by @alanzeino in https://github.com/kstenerud/KSCrash/pull/701
- Namespacing example using SPM by @kstenerud in https://github.com/kstenerud/KSCrash/pull/704
- Update the codebase for the next Xcode version. by @kstenerud in https://github.com/kstenerud/KSCrash/pull/706
- Remove remaining namespace code and header search paths around the old demangler by @kstenerud in https://github.com/kstenerud/KSCrash/pull/707
- Remove direct dependency between the signal and memory monitors by @kstenerud in https://github.com/kstenerud/KSCrash/pull/705
- @alanzeino made their first contribution in https://github.com/kstenerud/KSCrash/pull/701
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.3.0...2.4.0
2.3.0
- Fix Xcode 26 beta 1 warning about VLA folding by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/641
- Remove cyclic dependency between the NSException monitor and the top-level KSCrash class by @kstenerud in https://github.com/kstenerud/KSCrash/pull/646
- Add support for custom namespacing by @kstenerud in https://github.com/kstenerud/KSCrash/pull/647
- Added missing Foundation.h header by @kstenerud in https://github.com/kstenerud/KSCrash/pull/648
- Move KSThreadCache.h into the include directory of KSCrashRecording by @kstenerud in https://github.com/kstenerud/KSCrash/pull/649
- Use latest-stable in unit-tests by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/650
- Enable warnings-as-errors, and as many warnings as we can get away with by @kstenerud in https://github.com/kstenerud/KSCrash/pull/653
- Add more class names to the namespacer that clang missed by @kstenerud in https://github.com/kstenerud/KSCrash/pull/652
- Forward Mach exceptions to the next handler by @kstenerud in https://github.com/kstenerud/KSCrash/pull/651
- Add thread run state string to report by @DariaKunoichi in https://github.com/kstenerud/KSCrash/pull/645
- Binary Image Cleanup by @naftaly in https://github.com/kstenerud/KSCrash/pull/655
- Make KSCrashMonitor.c solely responsible for event IDs by @kstenerud in https://github.com/kstenerud/KSCrash/pull/658
- [EASY] fix off by one error in arm64.c by @naftaly in https://github.com/kstenerud/KSCrash/pull/660
- Invert dependency from individual monitors to KSCrashMonitor.c, using DI instead. by @kstenerud in https://github.com/kstenerud/KSCrash/pull/659
- Raise max captured thread count to 1000 by @DariaKunoichi in https://github.com/kstenerud/KSCrash/pull/664
- Report Version Based Timestamp Mixup Fix by @naftaly in https://github.com/kstenerud/KSCrash/pull/663
- Add script to toggle unsafe flags in Package.swift for release process by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/673
- @DariaKunoichi made their first contribution in https://github.com/kstenerud/KSCrash/pull/645
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.2.0...2.3.0
2.3.0-RC.1
This RC version was published due to a limitation in Swift Package Manager (SPM), which forbids the use of unsafeFlags in release builds. Until this is resolved, the package is distributed as a release candidate.
- Fix Xcode 26 beta 1 warning about VLA folding by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/641
- Remove cyclic dependency between the NSException monitor and the top-level KSCrash class by @kstenerud in https://github.com/kstenerud/KSCrash/pull/646
- Add support for custom namespacing by @kstenerud in https://github.com/kstenerud/KSCrash/pull/647
- Added missing Foundation.h header by @kstenerud in https://github.com/kstenerud/KSCrash/pull/648
- Move KSThreadCache.h into the include directory of KSCrashRecording by @kstenerud in https://github.com/kstenerud/KSCrash/pull/649
- Use latest-stable in unit-tests by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/650
- Enable warnings-as-errors, and as many warnings as we can get away with by @kstenerud in https://github.com/kstenerud/KSCrash/pull/653
- Add more class names to the namespacer that clang missed by @kstenerud in https://github.com/kstenerud/KSCrash/pull/652
- Forward Mach exceptions to the next handler by @kstenerud in https://github.com/kstenerud/KSCrash/pull/651
- Add thread run state string to report by @DariaKunoichi in https://github.com/kstenerud/KSCrash/pull/645
- Binary Image Cleanup by @naftaly in https://github.com/kstenerud/KSCrash/pull/655
- Make KSCrashMonitor.c solely responsible for event IDs by @kstenerud in https://github.com/kstenerud/KSCrash/pull/658
- [EASY] fix off by one error in arm64.c by @naftaly in https://github.com/kstenerud/KSCrash/pull/660
- Invert dependency from individual monitors to KSCrashMonitor.c, using DI instead. by @kstenerud in https://github.com/kstenerud/KSCrash/pull/659
- Raise max captured thread count to 1000 by @DariaKunoichi in https://github.com/kstenerud/KSCrash/pull/664
- @DariaKunoichi made their first contribution in https://github.com/kstenerud/KSCrash/pull/645
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.2.0...2.3.0-rc.1
2.2.0
- Add swift-format to project and CI by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/637
- Introduce KSCrashBacktrace by @naftaly in https://github.com/kstenerud/KSCrash/pull/634
- Enlarge Binary Image Cache Size by @naftaly in https://github.com/kstenerud/KSCrash/pull/639
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.1.2...2.2.0
2.1.2
- Update release workflow: Remove test functionality and add
publish_onlyoption by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/629 - Fix data race in memory monitor by @naftaly in https://github.com/kstenerud/KSCrash/pull/631
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.1.1...2.1.2
2.1.1
- Fix release workflow and add dry-run testing mode by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/625
- Explicitly link against zlib by @adincebic in https://github.com/kstenerud/KSCrash/pull/627
- @adincebic made their first contribution in https://github.com/kstenerud/KSCrash/pull/627
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.1.0...2.1.1
2.1.0
- Add Swift version setting to Tuist project configuration by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/611
- Add os_unfair_lock for thread safety in KSCrashMonitor by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/610
- Return properly typed reports from KSCrashReportFilterConcatenate by @tmolitor-stud-tu in https://github.com/kstenerud/KSCrash/pull/616
- Use active delay instead of waiting for crash on macOS by @bamx23 in https://github.com/kstenerud/KSCrash/pull/618
- Fix Ruby version specification in Gemfile by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/621
- Add binary image caching with thread safety in KSDynamicLinker by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/614
- fix config reportWrittenCallback by @tamwei in https://github.com/kstenerud/KSCrash/pull/622
- Add tests for reportWrittenCallback functionality by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/623
- @tamwei made their first contribution in https://github.com/kstenerud/KSCrash/pull/622
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.0.0...2.1.0
2.0.0
The pre-release versions of KSCrash 2.0 have been available since September 2024. Our early adopters have successfully deployed it on millions of devices, confirming its reliability and robustness in diverse environments.
-
Modular Architecture: KSCrash has been restructured into modular components, allowing you to incorporate only the functionalities you require. This change improves organization and flexibility.
-
Configuration-based Setup: The setup process now utilizes dedicated configuration objects, moving away from property manipulations to enhance clarity and maintainability.
-
Swift-First API Design: Adapted the API to leverage Swift’s strengths with enhanced naming conventions and type safety for an intuitive developer experience.
-
Report Store Extraction: Reporting functionalities have been centralized into the new
KSCrashReportStoreclass, streamlining management. -
Type-Safe Reports: Reports now use specific types instead of raw dictionaries, providing increased type safety and simplifying their usage.
-
Installation API Changes: Improved the installation process with more transparent error handling and refined configuration management.
-
Optional Filters and Modules: Core filters, including Doctor and Demangle, are now modular, offering precise control over feature inclusion.
-
Memory Monitoring: Comprehensive memory monitoring capabilities have been introduced, including memory footprint tracking, pressure detection, and level states indication.
-
SIGTERM Monitoring: Added support for detecting SIGTERM signals, offering more insights into app termination events.
-
App State Tracking: The new
KSCrashAppStateTrackerprovides detailed monitoring of application state transitions.
Please refer to the Migration Guide for comprehensive instructions on migrating from version 1.x to 2.0. It details changes in the API, installation, and configuration processes to facilitate a smooth transition.
- Ensured compatibility with macOS 15 in our continuous integration setups by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/601.
- Made certain simulators are ready before executing Xcode-related tasks in our CI workflow by @bamx23 in https://github.com/kstenerud/KSCrash/pull/602.
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.0.0-rc.8...2.0.0