2.6.0-beta.1
[!NOTE] Please review this page in the wiki for a deeper dive into all the changes.
[!NOTE] We're naming this v2.6.0 to be clear that we expect it to be 100% compatible, non-source breaking with v2.5.1. Please report any issues you may find.
- Fix memory safety issues and buffer handling bugs by @naftaly in https://github.com/kstenerud/KSCrash/pull/723
- Fix flaky tests by @naftaly in https://github.com/kstenerud/KSCrash/pull/727
- Add performance benchmarks by @naftaly in https://github.com/kstenerud/KSCrash/pull/721
- Fix memory monitor safety improvements by @naftaly in https://github.com/kstenerud/KSCrash/pull/725
- Optimize KSBinaryImageCache and KSDynamicLinker performance by @naftaly in https://github.com/kstenerud/KSCrash/pull/722
- Update CI runners from macos-13 to macos-14 by @naftaly in https://github.com/kstenerud/KSCrash/pull/728
- Fix uninitialized g_stackCursor crash in background threads (#712) by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/717
- Add Watchdog Monitor by @naftaly in https://github.com/kstenerud/KSCrash/pull/726
- Fix symbolication regression in KSBinaryImageCache by @naftaly in https://github.com/kstenerud/KSCrash/pull/731
- Remove Namespace Check Workflow by @naftaly in https://github.com/kstenerud/KSCrash/pull/734
- Fix sanitizer compatibility and add sanitizer CI by @naftaly in https://github.com/kstenerud/KSCrash/pull/733
- fix: watchdog monitor now collects threads by @naftaly in https://github.com/kstenerud/KSCrash/pull/730
- Fix sanitizer issues and Mach port leak by @naftaly in https://github.com/kstenerud/KSCrash/pull/736
- Add standard deviation column to benchmark results by @naftaly in https://github.com/kstenerud/KSCrash/pull/735
- Fix benchmarks workflow for fork PRs by @naftaly in https://github.com/kstenerud/KSCrash/pull/738
- Add CI workflow for Clang static analyzer by @naftaly in https://github.com/kstenerud/KSCrash/pull/744
- Fix thread safety issues in memory tracking by @naftaly in https://github.com/kstenerud/KSCrash/pull/742
- Fix memory leaks, optimize binary image cache, add leaks CI by @naftaly in https://github.com/kstenerud/KSCrash/pull/740
- Use lock-free atomic container for userInfoJSON thread safety by @naftaly in https://github.com/kstenerud/KSCrash/pull/741
- [RFC] Introducing Sampling Profiler by @naftaly in https://github.com/kstenerud/KSCrash/pull/732
- Add
ReportSwift target for a type safe crash report structure by @naftaly in https://github.com/kstenerud/KSCrash/pull/729 - Add cpu info to backtrace symbolication by @maxep in https://github.com/kstenerud/KSCrash/pull/737
- Fix static analyzer warnings by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/749
- Make leaks CI failable on real memory leaks by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/750
- 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
- __cxa_throw swapper upgrades by @naftaly in https://github.com/kstenerud/KSCrash/pull/753
- Use ptrauth_strip for PAC handling instead of hardcoded mask by @naftaly in https://github.com/kstenerud/KSCrash/pull/756
- Prepare Benchmarks For OnDevice Runs by @naftaly in https://github.com/kstenerud/KSCrash/pull/754
- Convert KSCrashReportFixer to Objective-C and improve symbol resolution by @naftaly in https://github.com/kstenerud/KSCrash/pull/761
- Fix crash handler deadlock when Watchdog monitor is enabled by @naftaly in https://github.com/kstenerud/KSCrash/pull/758
- Add compact unwind and DWARF CFI support for stack unwinding by @naftaly in https://github.com/kstenerud/KSCrash/pull/757
- Security improvements for OpenSSF Scorecard by @naftaly in https://github.com/kstenerud/KSCrash/pull/765
- ci: bump the github-actions group with 4 updates by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/766
- Restore pre-profiler deployment targets by @naftaly in https://github.com/kstenerud/KSCrash/pull/773
- Add visionOS 1.0 platform support to SPM by @naftaly in https://github.com/kstenerud/KSCrash/pull/775
- ci: add Infer static analysis and fix PR comments for fork PRs by @naftaly in https://github.com/kstenerud/KSCrash/pull/769
- Improve OOM handling and async-signal-safety by @naftaly in https://github.com/kstenerud/KSCrash/pull/768
- Add backtrace truncation detection and KSCrash+Backtrace category by @naftaly in https://github.com/kstenerud/KSCrash/pull/767
- Improve CI tooling and add namespace check workflow by @naftaly in https://github.com/kstenerud/KSCrash/pull/776
- Add BrowserStack CI integration for benchmarks by @naftaly in https://github.com/kstenerud/KSCrash/pull/762
- Fix ARM64 spurious frame after thread_start during stack unwinding by @naftaly in https://github.com/kstenerud/KSCrash/pull/764
- Fix async-signal-safety crash in monitor disable path by @naftaly in https://github.com/kstenerud/KSCrash/pull/770
- ci: bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/779
- Fix benchmarks workflow secret availability check by @naftaly in https://github.com/kstenerud/KSCrash/pull/780
- Add monitor sidecar infrastructure and rewrite watchdog to pure C by @naftaly in https://github.com/kstenerud/KSCrash/pull/771
- [EASY] Fix os_version reporting host macOS build on simulator by @naftaly in https://github.com/kstenerud/KSCrash/pull/782
- Add MetricKit crash monitor plugin by @naftaly in https://github.com/kstenerud/KSCrash/pull/774
- Add compact binary image reporting and inline object_uuid on frames by @naftaly in https://github.com/kstenerud/KSCrash/pull/777
- Add last_exception_backtrace for exception crashes by @naftaly in https://github.com/kstenerud/KSCrash/pull/778
- Add run sidecars for per-process-run sidecar data by @naftaly in https://github.com/kstenerud/KSCrash/pull/783
- Convert system monitor to mmap'd run sidecar by @naftaly in https://github.com/kstenerud/KSCrash/pull/784
- Refactor CLAUDE.md into .claude/rules/ for path-scoped loading by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/789
- Convert AppState monitor to mmap'd Lifecycle run sidecar by @naftaly in https://github.com/kstenerud/KSCrash/pull/786
- Correctness fixes, hang reporting config, and Report model improvements by @naftaly in https://github.com/kstenerud/KSCrash/pull/787
- ci: bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/791
- Skip crash report for SIGTERM by @naftaly in https://github.com/kstenerud/KSCrash/pull/793
- ci: add binary size analysis for PRs by @naftaly in https://github.com/kstenerud/KSCrash/pull/792
- Add UserInfo monitor with reusable KSKeyValueStore by @naftaly in https://github.com/kstenerud/KSCrash/pull/788
- Add passive Resource monitor by @naftaly in https://github.com/kstenerud/KSCrash/pull/790
- Add ResourceTermination monitor for post-mortem termination detection by @naftaly in https://github.com/kstenerud/KSCrash/pull/794
- Add task role tracking to Lifecycle monitor by @naftaly in https://github.com/kstenerud/KSCrash/pull/795
- ci: bump jdx/mise-action from 3 to 4 in the github-actions group by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/797
- ci: report Infer results as a neutral check run by @naftaly in https://github.com/kstenerud/KSCrash/pull/800
- Fix Zombie monitor hang and enable proper disable by @naftaly in https://github.com/kstenerud/KSCrash/pull/798
- Fix test reliability and add Tuist Derived to gitignore by @naftaly in https://github.com/kstenerud/KSCrash/pull/799
- Fix data race in KSReachabilityKSCrash initializer by @naftaly in https://github.com/kstenerud/KSCrash/pull/801
- Termination monitor, RunContext shared layer, and integration tests by @naftaly in https://github.com/kstenerud/KSCrash/pull/796
- Replace snprintf with async-signal-safe string conversion in crash-time code by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/804
- Update nullability for several interfaces, add some missing designated initializer stuff too by @alanzeino in https://github.com/kstenerud/KSCrash/pull/711
- Finalize recovered hang reports with live system data by @naftaly in https://github.com/kstenerud/KSCrash/pull/802
- Add fork PR guards to CI workflows by @naftaly in https://github.com/kstenerud/KSCrash/pull/805
- Refactor stitch pipeline to parse once, stitch all, encode once by @naftaly in https://github.com/kstenerud/KSCrash/pull/803
- Fix mach.subcode always 0 due to 32-bit/64-bit struct mismatch by @naftaly in https://github.com/kstenerud/KSCrash/pull/811
- Finalize non-fatal reports immediately by @naftaly in https://github.com/kstenerud/KSCrash/pull/806
- ci: bump actions/github-script from 7 to 8 in the github-actions group by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/807
- Collapse category sections in benchmark report by @naftaly in https://github.com/kstenerud/KSCrash/pull/812
- fix: zero mach code/subcode in watchdog fatal hang reports by @naftaly in https://github.com/kstenerud/KSCrash/pull/813
- fix: add missing signal code to injected termination reports by @naftaly in https://github.com/kstenerud/KSCrash/pull/814
- Track app transition state in hang reports, suppress startup hangs by @naftaly in https://github.com/kstenerud/KSCrash/pull/808
- [2] Track app transition state in hang reports, suppress startup hangs by @naftaly in https://github.com/kstenerud/KSCrash/pull/817
- Add API: ksbt_captureBacktraceFromSuspendedMachThread by @kstenerud in https://github.com/kstenerud/KSCrash/pull/816
- Add missing
nonecase to Swift TerminationReason enum by @naftaly in https://github.com/kstenerud/KSCrash/pull/818 - Add async-signal-safety-review skill by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/820
- fix: watchdog stitch no longer overwrites is_fatal on non-watchdog reports by @naftaly in https://github.com/kstenerud/KSCrash/pull/822
- ci: bump actions/github-script from 8 to 9 in the github-actions group by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/823
- Fix async-signal-safety violations in JSON codec and logger by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/821
- Let consumers opt out of KSLogger.h's DEBUG/ERROR/etc. aliases by @naftaly in https://github.com/kstenerud/KSCrash/pull/824
- ci: rework release workflow for reversibility by @naftaly in https://github.com/kstenerud/KSCrash/pull/825
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.5.0...2.6.0-beta.1
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