# SDL_GetAssertionReport
Get a list of all assertion failures.
## Header File
Defined in [<SDL3/SDL_assert.h>](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_assert.h)
## Syntax
```c
const SDL_AssertData * SDL_GetAssertionReport(void);
```
## Return Value
(const [SDL_AssertData](SDL_AssertData) *) Returns a list of all failed
assertions or NULL if the list is empty. This memory should not be modified
or freed by the application. This pointer remains valid until the next call
to [SDL_Quit](SDL_Quit)() or
[SDL_ResetAssertionReport](SDL_ResetAssertionReport)().
## Remarks
This function gets all assertions triggered since the last call to
[SDL_ResetAssertionReport](SDL_ResetAssertionReport)(), or the start of the
program.
The proper way to examine this data looks something like this:
```c
const SDL_AssertData *item = SDL_GetAssertionReport();
while (item) {
printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\n",
item->condition, item->function, item->filename,
item->linenum, item->trigger_count,
item->always_ignore ? "yes" : "no");
item = item->next;
}
```
## Thread Safety
This function is not thread safe. Other threads calling
[SDL_ResetAssertionReport](SDL_ResetAssertionReport)() simultaneously, may
render the returned pointer invalid.
## Version
This function is available since SDL 3.2.0.
## Code Examples
The proper way to examine this data looks something like this:
```c
const SDL_AssertData *item = SDL_GetAssertionReport();
while (item) {
printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\n",
item->condition, item->function, item->filename,
item->linenum, item->trigger_count,
item->always_ignore ? "yes" : "no");
item = item->next;
}
```
## See Also
- [SDL_ResetAssertionReport](SDL_ResetAssertionReport)
----
[CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategoryAssert](CategoryAssert)