Initial commit

This commit is contained in:
olemorud
2023-04-24 17:13:47 +02:00
commit 4ce1c34838
12 changed files with 653 additions and 0 deletions

58
src/util.c Normal file
View File

@@ -0,0 +1,58 @@
#include "util.h"
#include <err.h>
#include <errno.h>
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
void* malloc_or_die(size_t size)
{
void* result = malloc(size);
if (result == NULL)
err(errno, "malloc_or_die failed");
return result;
}
void* realloc_or_die(void* ptr, size_t size)
{
ptr = realloc(ptr, size);
if (ptr == NULL)
err(errno, "realloc_or_die failed");
return ptr;
}
void* calloc_or_die(size_t nmemb, size_t size)
{
void* ptr = calloc(nmemb, size);
if (ptr == NULL)
err(errno, "calloc_or_die failed");
return ptr;
}
// from the glibc man pages
// https://www.gnu.org/software/libc/manual/html_node/Backtraces.html
void print_trace()
{
void* array[500];
char** strings;
int size, i;
size = backtrace(array, 500);
strings = backtrace_symbols(array, size);
if (strings != NULL) {
printf("Obtained %d stack frames.\n", size);
for (i = 0; i < size; i++)
printf("%s\n", strings[i]);
}
free(strings);
}