Skip to content
Sentry SDK for C, C++ and native applications.
C++ Lua C Shell Objective-C++ Python
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode ref: Break up sentrypad into smaller modules and refactor it greatly (#… May 31, 2019
azure-pipelines build: Fix display names May 28, 2019
bin meta: Add bump-version script Jun 11, 2019
crashpad feat: Package SentryPad and Crashpad (#17) May 27, 2019
include release: Bump to 0.0.3 Jun 11, 2019
premake Build both 32-bit & 64-bit versions of the SDK (#26) Jul 31, 2019
src feat(windows): Ignore errors for missing dictionaries on delete Jun 4, 2019
.clang-format ref: Basic refactoring for C++ happiness Mar 5, 2019
.editorconfig feat: Add premake configuration (#11) Mar 22, 2019
.gitignore ignore cloned crashpad and in-source visual studio cruft (#23) Jul 18, 2019
LICENSE meta: Add license (MIT) Jul 31, 2019
README.md doc: Add Xcode as a Mac requirement Aug 12, 2019
README.package.md feat: Package SentryPad and Crashpad (#17) May 27, 2019
azure-pipelines.yml
example.c fix: Windows handler path in example Jun 11, 2019
package.sh feat: Package the main README Jun 3, 2019

README.md

SentryPad

SentryPad is a wrapper around two most popular crash-reporting frameworks: Breakpad and Crashpad. It provides an abstraction layer that unlocks certain Sentry features, such as setting tags and adding breadcrumbs to your crashes. SentryPad is also responsible for sending the crashes directly to Sentry in an efficient manner.

Platforms we are going to support eventually: MacOS X, Linux (32/64 bit), Windows (32/64 bit), Android, iOS.

Table of Contents

Downloads

Packages with source code can be downloaded from the release page.

What is inside

At the moment, we package and distribute the following components:

  • Sentrypad source code
  • Crashpad source code
  • Build files for MacOS ("make" files) and Windows (Visual Studio solution)

If any of the provided build files do not work for you, please refer to Development: Generating Build Files

Build Prerequisites

In order to build the provided source files, you will need the following software:

MacOS

Windows

  • Microsoft Visual Studio 2017 (or later)

Building Crashpad + Sentrypad

WARNING: The following commands will work for the packaged version of Sentrypad (see Downloads). We generate gen_macosx and gen_windows during the CI build, so you will not find them in the git repository.

MacOS

cd gen_macosx
make

The command will build both Crashpad and Sentrypad libraries, as well as an application example (bin/Release/sentry_example_crashpad).

Windows

Visual Studio solution is located at gen_windows/Sentrypad.sln and contains projects for both Sentrypad and Crashpad.

WARNING: There is a known issue that the Windows SDK version configured in the solution might not be present on your system. If you see "The Windows SDK version XXX was not found" error, you can try to "Retarget Solution" ("Project" -> "Retarget solution"). You can also regenerate build files on the target machine, for that please consult the development section.

Sample Application

The build commands will produce Sentrypad and Crashpad libraries (e.g. ./bin/Release/libsentry_crashpad.dylib on MacOS), and a sample crashing application. You can run it by passing your Sentry DSN key via an environment variable:

# MacOS
SENTRY_DSN=https://XXXXX@sentry.io/YYYYY ./bin/Release/sentry_example_crashpad

The command will result into a segmentation fault, and a new event will be sent to Sentry. If debug symbols are present in Sentry (dSYM or PDB files, they are generated automatically in the output directory), the event will also be properly symbolicated.

Development: Generating Build Files

If you want to develop/test Sentrypad locally, or the distribution package doesn't fit your needs, you can run generate build files right from the premake/ directory. We use premake5 to prepare build files.

Additional Dependencies

  • premake5: we use premake to generate build files.

MacOS

cd premake/
premake5 gmake2

...will create a set of Makefiles that you can use to build any part of the project.

Use make help to see all available targets.

Windows

cd premake/
premake5 vs2017

The last command will create a Visual Studio 2017 solution (Sentrypad.sln) that contains Crashpad and Sentrypad library projects, and a sentry_example_crashpad example project.

You can’t perform that action at this time.