# C Error Monitoring

> Resolve issues & improve the debugging process with C error monitoring. Get started preventing crashes across your entire stack with Sentry today.

**URL:** https://sentry.io/for/c/

---

Debug C apps and prevent crashes across your entire stack with Sentry. Resolve issues with a C monitoring workflow that actually improves the debugging process.

**Documentation:** [https://docs.sentry.io/platforms/native/](https://docs.sentry.io/platforms/native/)

## Install

The Native SDK supports Windows, macOS, and Linux. Download the latest sources from the [Releases page](https://github.com/getsentry/sentry-native/releases) and build them with `CMake`, for example on macOS:

```bash
# configure the CMake build into the `build` directory with crashpad (the default backend on macOS)
cmake -B build -D SENTRY_BACKEND=crashpad -D CMAKE_BUILD_TYPE=RelWithDebInfo
# build the project
cmake --build build --parallel
# install the resulting artifacts into a specific prefix
cmake --install build --prefix install
```

When using the Crashpad backend (the default on Windows, macOS, and Linux), ship the `crashpad_handler` binary alongside your application.

Import and initialize the Sentry SDK early in your application setup:

```c
#include <sentry.h>

int main(void) {
  sentry_options_t *options = sentry_options_new();
  sentry_options_set_dsn(options, "https://<key>@<org>.ingest.sentry.io/<project>");
  sentry_options_set_release(options, "my-project-name@2.3.12");
  sentry_init(options);

  /* ... */

  // make sure everything flushes before the application exits
  sentry_close();
}
```

See the [C docs](https://docs.sentry.io/platforms/native/) for full setup options.

## Features

### C Monitoring with Complete Stack Traces

See details like filename and line numbers so you never have to guess with C errors. Filter and group C exceptions intuitively to eliminate noise. Monitor errors at scale without impacting throughput in production.

### More Than Just Bug Tracking

Use issue graphs to understand the frequency, scope, and impact of C errors so you can prioritize what needs to be fixed. Get alerts via email, SMS, or chat when bugs make it into production without disrupting your development workflow.

### Insights Delivered

Get real-time insights immediately. Setup takes just a few minutes and typically requires only two lines of code. If you need help, we've built a full documentation library to handle any debugging scenario.

## FAQ

**What is the difference between Sentry and traditional logging?**

Traditional logging provides you with a trail of events. Some of those events are errors, but many times they're simply informational. Sentry is fundamentally different because we focus on exceptions, or in other words, we capture application crashes. We discuss in more detail [here](/vs/logging/) and on our [blog](https://blog.sentry.io/lets-get-ready-to-monitor/).

**What  languages does Sentry support?**

Sentry supports every major  language, framework, and library. You can browse each of them [here](/platforms/).

**How much does Sentry cost?**

You can get started for free. Pricing depends on the number of monthly events, transactions, and attachments that you send Sentry. For more details, visit our [pricing page](/pricing/).

**How does Sentry impact the performance of my app?**

Sentry doesn't impact a web site's performance.

If you look at the configuration options for when you initialize Sentry in your code, you'll see there's nothing regarding minimizing its impact on your app's performance. This is because our team of SDK engineers already developed Sentry with this in mind.

Sentry is a listener/handler for errors that asynchronously sends out the error/event to Sentry.io. This is non-blocking. The error/event only goes out if this is an error.

Global handlers have almost no impact as well, as they are native APIs provided by the browsers.

---

*Source: [sentry.io/for/c/](https://sentry.io/for/c/)*
