Fixes:
- Fix a memory unsafety issue when calling
sentry_value_remove_by_key
. (#297) - Improvements to internal logging. (#301, #302)
- Better handling of timeouts. (#284)
- Better 32-bit build support. (#291)
- Run more checks on CI. (#299)
Thank you:
Fixes in this release have been contributed by:
Features:
-
Implement a new logger hook. (#267)
This adds the new
sentry_options_set_logger
function, which can be used to customize the sentry-internal logging, for example to integrate into an app’s own logging system, or to stream logs to a file. -
New CMake options:
SENTRY_LINK_PTHREAD
,SENTRY_BUILD_RUNTIMESTATIC
andSENTRY_EXPORT_SYMBOLS
along with other CMake improvements.
Fixes:
- Avoid memory unsafety when loading session from disk. (#270)
- Avoid Errors in Crashpad Backend without prior scope changes. (#272)
- Fix absolute paths on Windows, and allow using forward-slashes as directory separators. (#266, #289)
- Various fixes uncovered by static analysis tools, notably excessive allocations by the page-allocator used inside signal handlers.
- Build fixes for MinGW and other compilers.
Thank you:
Features, fixes and improvements in this release have been contributed by:
- Add support for on-device symbolication, which is enabled by default on
Android. Use
sentry_options_set_symbolize_stacktraces
to customize. - Enable gzip compressed crashpad minidumps on windows.
- Correctly 0-pad short
build-id
s. - Fix build for 32bit Apple targets.
- Always send the newer
x-sentry-envelope
format, which makes this incompatible with older on-premise installations. - Better document and handle non-ASCII paths. Users on windows should use the
w
version of the appropriate APIs. - Avoid segfaults due to failed sentry initialization.
- Avoid creating invalid sessions without a
release
. - Make
sentry_transport_t
opaque, and instead expose APIs to configure it. More functionality related to creating custom transports will be exposed in future versions.
- The
sentry_backend_free
function was removed. - The
sentry_backend_t
type was removed. - The
sentry_transport_t
type is now opaque. Use the following new API to create a custom transport.
sentry_transport_new
sentry_transport_set_state
sentry_transport_set_free_func
sentry_transport_set_startup_func
sentry_transport_set_shutdown_func
See sentry.h
for more documentation.
sentry_new_function_transport
has been deprecated in favor of the new transport builder functions.
- Avoid crash with invalid crashpad handler path.
- Send sessions to the correct sentry endpoint and make sure they work.
- Smaller cleanups.
- Avoid unsafe reads in the linux module finder.
- Update to latest crashpad snapshot.
- Yet more CMake improvements (thanks @madebr and @Amphaal).
All 0.2.x
versions prior to this one were affected by a bug that could
potentially lead to serious data-loss on Windows platforms. We encourage
everyone to update as quickly as possible.
See #220 for details.
sentry_transport_t
will be replaced by an opaque struct with setter methods in a future release.sentry_backend_free
andsentry_backend_t
are deprecated and will be removed in a future release.
- Further improvements to the cmake build system (huge thanks to @madebr #207)
- Improved support for older Windows versions, as low as Windows XP SP3 (thanks to @Mixaill #203, @cammm #202 and @jblazquez #212)
- Improved documentation
- Cleaned up sentry database handling
- Added new
sentry_handle_exception
function to explicitly capture a crash (thanks @cammm #201) - Added new
sentry_clear_modulecache
function to clear the list of loaded modules. Use this function when dynamically loading libraries at runtime.
- Implement experimental Session handling
- Implement more fine grained Rate Limiting for HTTP requests
- Implement
sample_rate
option - In-process and Breakpad backend will not lose events queued for HTTP submission on crash
sentry_shutdown
will better clean up after itself- Add Experimental MinGW build support (thanks @Amphaal #189)
- Various other fixes and improvements
- Added Breakpad support on Linux
- Implemented fallback
debug-id
on Linux and Android for modules that are built without abuild-id
- Fixes issues and added CI for more platforms/compilers, including 32-bit Linux and 32-bit VS2017
- Further improvements to the CMake configuration (thanks @madebr #168)
- Added a new
SENTRY_TRANSPORT
CMake option to customize the default HTTP transport
- Complete rewrite in C
- Build system was switched to CMake
- Add attachment support
- Better support for custom transports
- The crashpad backend will automatically look for a
crashpad_handler
executable next to the running program if nohandler_path
is set.
- The
sentry_uuid_t
struct is now always achar bytes[16]
instead of a platform specific type. sentry_remove_context
: The second parameter was removed.sentry_options_set_transport
: This function now takes a pointer to the newsentry_transport_t
type. Migrating from the old API can be done by wrapping withsentry_new_function_transport
, like this:sentry_options_set_transport( options, sentry_new_function_transport(send_envelope_func, &closure_data));
size_t sentry_value_refcount(sentry_value_t value)
void sentry_envelope_free(sentry_envelope_t *envelope)
void sentry_backend_free(sentry_backend_t *backend)
- Add an option to enable the system crash reporter
- Fix compilation warnings
- Stack unwinding on Android
- Fix UUID generation on Android
- Fix concurrently captured events leaking data in some cases
- Fix crashes when the database path contains both slashes and backslashes
- More robust error handling when creating the database folder
- Fix wrong initialization of CA info for the curl backend
- Disable the system crash handler on macOS for faster crashes
- Fix SafeSEH builds on Win32
- Fix a potential error when shutting down after unloading libsentry on macOS
- Update Crashpad
- Fix compilation on Windows with VS 2019
- Fix a bug in the JSON serializer causing invalid escapes
- Fix a bug in the Crashpad backend causing invalid events
- Reduce data event data sent along with minidumps
- Experimental support for Android NDK
- Support for capturing messages
- Add an API to capture arbitrary contexts (
sentry_set_context
) - Fix scope information being lost in some cases
- Experimental on-device unwinding support
- Experimental on-device symbolication support
- Breakpad builds on all platforms
- Add builds for Windows (x86)
- Add builds for Linux
- Fix debug information generation on macOS
- Crashpad builds on macOS
- Crashpad builds on Windows (x64)
Initial Release