22int divide_by_zero(
void);
23void cause_segfault(
void);
24int stack_overflow(
void);
25void infinite_loop(
void);
26void illegal_instruction(
void);
27void cause_calamity(
void);
31int main(
int argc,
char* argv[]) {
49void cause_calamity(
void) {
53 (void)divide_by_zero();
57 illegal_instruction();
60int divide_by_zero(
void) {
66void cause_segfault(
void) {
67 int* p = (
int*)0x12345678;
72#pragma GCC diagnostic push
73#if defined(__GNUC__) && (__GNUC__ >= 12)
74#pragma GCC diagnostic ignored "-Winfinite-recursion"
76int stack_overflow(
void) {
79 foo = stack_overflow();
82#pragma GCC diagnostic pop
85void infinite_loop(
void) {
96void illegal_instruction(
void) {
#define n_log(__LEVEL__,...)
Logging function wrapper to get line and func.
#define LOG_DEBUG
debug-level messages
#define LOG_STDERR
internal, default LOG_TYPE
void set_log_level(const int log_level)
Set the global log level value ( static int LOG_LEVEL )
void set_signal_handler(const char *progname)
Install a signal handler for progname.
Signals general handling with stack printing, from https://gist.github.com/jvranish/4441299.