Today I found this :

#include "execinfo.h"

void BT(void)
{
        void *array[50];
        size_t size;
        char **strings;
        size_t i;
        
        size = backtrace (array, 50);
        strings = backtrace_symbols (array, size);
        
        printf ("Obtained %zd stack frames.\n", size);
        
        for (i = 0; i < size; i++)
        printf ("%s\n", strings[i]);
        
        free (strings);
}

That allow to dump a backtrace (here max 50 frames) from inside a running 
program.
Quite useful if app is non debuggable and don't run with +relay on because
of copy protection.

Ciao

Max



Reply via email to