summary: Learn how to identify errors in your application and best practice for logging application errors.

# Debugging

SilverStripe can be a large and complex framework to debug, but there are ways to make debugging less painful. In this
guide we show the basics on defining the correct [Environment Type](environment_types) for your application and other
built-in helpers for dealing with application errors.

[CHILDREN]

## Performance

See the [Profiling](../performance/profiling) documentation for more information on profiling SilverStripe to track down
bottle-necks and identify slow moving parts of your application chain.

## Debugging Utilities

The [Debug](api:SilverStripe\Dev\Debug) class contains a number of static utility methods for more advanced debugging.

```php
use SilverStripe\Dev\Debug;
use SilverStripe\Dev\Backtrace;

Debug::show($myVariable);
// similar to print_r($myVariable) but shows it in a more useful format.

Debug::message("Wow, that's great");
// prints a short debugging message.

Backtrace::backtrace();
// prints a calls-stack
```

## API Documentation

* [Backtrace](api:SilverStripe\Dev\Backtrace)
* [Debug](api:SilverStripe\Dev\Debug)