1 #include "nitg.main.0.h"
8 void sig_handler(int signo
){
9 printf("Caught signal : %s\n", strsignal(signo
));
10 show_backtrace(signo
);
12 void show_backtrace (int signo
) {
13 char* opt
= getenv("NIT_NO_STACK");
18 char* procname
= malloc(sizeof(char) * 100);
20 unw_init_local(&cursor
, &uc
);
21 printf("-------------------------------------------------\n");
22 printf("-- Stack Trace ------------------------------\n");
23 printf("-------------------------------------------------\n");
24 while (unw_step(&cursor
) > 0) {
25 unw_get_proc_name(&cursor
, procname
, 100, &ip
);
26 printf("` %s \n",procname
);
28 printf("-------------------------------------------------\n");
33 int main(int argc
, char** argv
) {
35 signal(SIGABRT
, sig_handler
);
36 signal(SIGFPE
, sig_handler
);
37 signal(SIGILL
, sig_handler
);
38 signal(SIGINT
, sig_handler
);
39 signal(SIGTERM
, sig_handler
);
40 signal(SIGSEGV
, sig_handler
);
41 glob_argc
= argc
; glob_argv
= argv
;
42 initialize_gc_option();
43 var
= NEW_kernel__Sys(&type_kernel__Sys
);
45 ((void (*)(val
*))(var
->class->vft
[COLOR_kernel__Sys__init
]))(var
) /* init on <var:Sys>*/;
46 ((void (*)(val
*))(var
->class->vft
[COLOR_kernel__Sys__main
]))(var
) /* main on <var:Sys>*/;