2.6.1-beta.1
[!NOTE] 2.6.1 is a bug-fix release on top of 2.6.0: no new features, no source-breaking changes. Please report any issues you may find.
- Preserve the page protection when the __cxa_throw swapper writes to __DATA_CONST by @tanscon in https://github.com/kstenerud/KSCrash/pull/914
- Honor enableQueueNameSearch by @naftaly in https://github.com/kstenerud/KSCrash/pull/921
- Stop KSLogger from holding a closed file descriptor by @naftaly in https://github.com/kstenerud/KSCrash/pull/908
- Escape control characters instead of refusing to encode the string by @naftaly in https://github.com/kstenerud/KSCrash/pull/920
- Reject invalid UTF-8 in Objective-C JSON decoding by @DeeSee in https://github.com/kstenerud/KSCrash/pull/902
- Spell restrict so C++ can read these headers by @naftaly in https://github.com/kstenerud/KSCrash/pull/918
- Reject embedded JSON that cannot be written instead of writing part of it by @naftaly in https://github.com/kstenerud/KSCrash/pull/865
- Seed report IDs from wall-clock nanoseconds by @naftaly in https://github.com/kstenerud/KSCrash/pull/866
- fix(ci): Prevent script injection across workflows and actions by @philprime in https://github.com/kstenerud/KSCrash/pull/967
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.6.0...2.6.1-beta.1
2.6.0
[!NOTE] KSCrash 2.6.0 is fully backward-compatible with 2.5.1: no source-breaking changes, and all renamed or removed APIs keep working as deprecated aliases. The Migration Guide covers everything that changed and how to adopt the new features.
- Watchdog monitor: detects main-thread hangs using run-loop observation and a 250ms threshold matching Apple's hang definition, with full backtraces, recovery tracking, and optional non-fatal reports for recovered hangs. Replaces the deprecated Deadlock monitor.
- Termination monitor: detects OS-level terminations that can't be caught at runtime (OOM, thermal, CPU watchdog, reboots, OS/app upgrades), and
previousTerminationReasonreports why the previous run ended. - CPU tracker: sliding-window CPU state tracking that mirrors Apple's enforcement thresholds, with optional non-fatal EXC_RESOURCE reports on state transitions.
- Per-key user info: an async-signal-safe, mmap'd key-value store with zero crash-time overhead, replacing the deprecated dictionary userInfo property.
- Swift modules:
Report(strongly-typed CrashReport model for parsing reports),Monitors(MetricKit plugin), andProfiler(sampling profiler). - Plus a plugin monitor API, direct backtrace capture API, threadcrumbs, compact binary images, opt-in Swift async stack traces, and a long list of crash-time correctness and hardening fixes.
The CHANGELOG has the complete list of features, deprecations, behavioral changes, and bug fixes.
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.5.1...2.6.0
2.6.0-beta.5
[!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.
- Track stack overflow on the stack cursor by @naftaly in https://github.com/kstenerud/KSCrash/pull/877
- Add Xcode 27 support to CI workflows by @naftaly in https://github.com/kstenerud/KSCrash/pull/868
- Add Swift async self-thread stack capture option by @supervacuus in https://github.com/kstenerud/KSCrash/pull/878
- Fix arm64 symbolication of Swift async continuation frames by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/879
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.6.0-beta.4...2.6.0-beta.5
2.6.0-beta.4
[!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.
- ci: bump actions/dependency-review-action from 4 to 5 in the github-actions group by @dependabot in https://github.com/kstenerud/KSCrash/pull/839
- ci: skip Public API Diff for PRs targeting develop by @naftaly in https://github.com/kstenerud/KSCrash/pull/843
- ci: only run Public API Diff against stable bases (master + release/*) by @naftaly in https://github.com/kstenerud/KSCrash/pull/844
- Fix the Thread Sanitizer CI job failures by @naftaly in https://github.com/kstenerud/KSCrash/pull/858
- Diagnose crashes on the Objective-C nonatomic-property race sentinel by @naftaly in https://github.com/kstenerud/KSCrash/pull/859
- fix: use binary image cache for system binary CPU metadata by @supervacuus in https://github.com/kstenerud/KSCrash/pull/857
- fix: Honor SIG_IGN when installing signal monitor by @supervacuus in https://github.com/kstenerud/KSCrash/pull/856
- Use effective monitor mask when registering monitors by @supervacuus in https://github.com/kstenerud/KSCrash/pull/863
- Preserve the link register value the LR frame consumed by @naftaly in https://github.com/kstenerud/KSCrash/pull/869
- Bound the eh_frame reads that take their length from the section by @naftaly in https://github.com/kstenerud/KSCrash/pull/871
- Guard ksthread_getQueueName against non-positive buffer lengths by @naftaly in https://github.com/kstenerud/KSCrash/pull/874
- Fail the compact unwind lookup at the index sentinel by @naftaly in https://github.com/kstenerud/KSCrash/pull/870
- Use strlcpy for NULL-terminated string copies by @naftaly in https://github.com/kstenerud/KSCrash/pull/875
- Fill the unwind info out-param when the image cache is full by @naftaly in https://github.com/kstenerud/KSCrash/pull/872
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.6.0-beta.3...2.6.0-beta.4
2.6.0-beta.3
[!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 stale last_exception_backtrace for Objective-C object exceptions by @GLinnik21 https://github.com/kstenerud/KSCrash/pull/847
- Fix C++ monitor handling of ObjC exception subclasses by @supervacuus https://github.com/kstenerud/KSCrash/pull/845
- Docs cleanup for 2.6.0 beta by @naftaly in https://github.com/kstenerud/KSCrash/pull/819
- Prefix the Swift modules with KSCrash by @naftaly in https://github.com/kstenerud/KSCrash/pull/849
- Fix run-sidecar cleanup deleting live sidecars past 512 reports by @naftaly in https://github.com/kstenerud/KSCrash/pull/848
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.6.0-beta.2...2.6.0-beta.3
2.6.0-beta.2
[!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.
- Add public-API breaking-change CI gate using swift-api-digester by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/828
- Benchmarks: surface profiler per-sample latency via custom XCTMetric by @naftaly in https://github.com/kstenerud/KSCrash/pull/831
- Profiler perf pass by @naftaly in https://github.com/kstenerud/KSCrash/pull/830
- Profiler: extract Profile/Profiler protocols, rename to Time* by @naftaly in https://github.com/kstenerud/KSCrash/pull/837
- Report: enum mirror sweep audit fixes by @naftaly in https://github.com/kstenerud/KSCrash/pull/832
- Monitor: bound the array store in endHandlingException by @naftaly in https://github.com/kstenerud/KSCrash/pull/833
- Zombie: switch g_zombieCache from volatile to _Atomic by @naftaly in https://github.com/kstenerud/KSCrash/pull/834
- Store: stop hijacking the stitch config from KSCrashReportStore.init by @naftaly in https://github.com/kstenerud/KSCrash/pull/835
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.6.0-beta.1...2.6.0-beta.2
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