diff --git a/CHANGELOG.md b/CHANGELOG.md
index 17d6a9383..41f9ab5a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,29 @@
# Changelog
+## Unreleased
+
+**Features**:
+
+- The crashpad backend now captures thread names. ([#725](https://github.com/getsentry/sentry-native/pull/725))
+- The inproc backend now captures the context registers. ([#714](https://github.com/getsentry/sentry-native/pull/714))
+- A new set of APIs to get the sentry SDK version at runtime. ([#726](https://github.com/getsentry/sentry-native/pull/726))
+- Add more convenient APIs to attach stack traces to exception or thread values. ([#723](https://github.com/getsentry/sentry-native/pull/723))
+- Allow disabling the crash reporting backend at runtime. ([#717](https://github.com/getsentry/sentry-native/pull/717))
+
+**Fixes**:
+
+- Improved heuristics flagging sessions as "crashed". ([#719](https://github.com/getsentry/sentry-native/pull/719))
+
+**Internal**:
+
+- Updated Breakpad and Crashpad backends to 2022-06-14. ([#725](https://github.com/getsentry/sentry-native/pull/725))
+
+**Thank you**:
+
+Features, fixes and improvements in this release have been contributed by:
+
+- [@olback](https://github.com/olback)
+
## 0.4.17
**Fixes**:
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index 24bfe0186..ca807f71c 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -74,6 +74,9 @@ set(BREAKPAD_SOURCES_CLIENT_LINUX
breakpad/src/client/linux/minidump_writer/linux_dumper.cc
breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+ breakpad/src/client/linux/minidump_writer/pe_file.cc
+ breakpad/src/client/linux/minidump_writer/pe_file.h
+ breakpad/src/client/linux/minidump_writer/pe_structs.h
)
set(BREAKPAD_SOURCES_CLIENT_WINDOWS
@@ -115,12 +118,12 @@ set(BREAKPAD_SOURCES_CLIENT_IOS
breakpad/src/client/mac/handler/ucontext_compat.h
)
-
add_library(breakpad_client STATIC)
target_sources(breakpad_client PRIVATE ${BREAKPAD_SOURCES_COMMON})
if(LINUX OR ANDROID)
target_sources(breakpad_client PRIVATE ${BREAKPAD_SOURCES_COMMON_LINUX} ${BREAKPAD_SOURCES_CLIENT_LINUX})
+
if(ANDROID)
target_sources(breakpad_client PRIVATE ${BREAKPAD_SOURCES_COMMON_ANDROID})
target_include_directories(breakpad_client PRIVATE breakpad/src/common/android/include)
@@ -128,6 +131,7 @@ if(LINUX OR ANDROID)
include(CheckFunctionExists)
check_function_exists(getcontext HAVE_GETCONTEXT)
+
if(HAVE_GETCONTEXT)
target_compile_definitions(breakpad_client PRIVATE HAVE_GETCONTEXT)
else()
@@ -141,6 +145,7 @@ if(APPLE)
target_sources(breakpad_client PRIVATE
${BREAKPAD_SOURCES_COMMON_APPLE}
${BREAKPAD_SOURCES_CLIENT_APPLE})
+
if(NOT IOS)
target_sources(breakpad_client PRIVATE
${BREAKPAD_SOURCES_COMMON_MAC}
@@ -167,8 +172,8 @@ endif()
# which are being resolved correctly when we add the current directory to
# the include directories. A giant hack, yes, but it works
target_include_directories(breakpad_client
- PRIVATE
- "$"
- PUBLIC
- "$"
+ PRIVATE
+ "$"
+ PUBLIC
+ "$"
)
diff --git a/external/breakpad b/external/breakpad
index 2cbe0387b..1fc7929f9 160000
--- a/external/breakpad
+++ b/external/breakpad
@@ -1 +1 @@
-Subproject commit 2cbe0387bea361c15a3a62af71e1d233d4bb1e0d
+Subproject commit 1fc7929f9ed5073184fe2ba7b52a35d75124ca04
diff --git a/external/crashpad b/external/crashpad
index be34d6e8b..82e2b7db9 160000
--- a/external/crashpad
+++ b/external/crashpad
@@ -1 +1 @@
-Subproject commit be34d6e8b0b6d3f3845e3a1164771d8e24269ea8
+Subproject commit 82e2b7db9fdc99bdd2dee65c9c75f5c1408db3de