dumper une stack trace en cas de segfault

Portrait de trax

Petit bout de code qui bien pratique, imprimer une trace d'exécution en cas de segfault (pour avoir les numéro de lignes utiliser addr2line)

void sigSevHandler(int sig) {
  void *array[10];
  size_t size;
 
  size = backtrace(array, 10);
 
  fprintf(stderr, "Error: signal %d:\n", sig);
  backtrace_symbols_fd(array, size, 2);
  exit(1);
}
 
 
 
void setStacktraceDumpOnSegfault(){
    signal(SIGSEGV, sigSevHandler);
}
Domaine: