反汇编Linux程序

xxxxx是linux下编译生成的可执行程序

objdump -j .text -Sl xxxxx > obj.txt

记录堆栈信息函数

void SignalHandler(void)
{
    void* array[10] = {0};
    int size = 0;
    char **strframe = NULL;
    int i = 0, j = 0;
    size = backtrace(array, 10);
    strframe = (char **)backtrace_symbols(array, size);
   
    printf("print call frame now:\n");
    for(i = 0; i < size; i++)
    {
        printf("frame %d -- %s\n", i, strframe[i]);
    }
    if(strframe)
    {
        free(strframe);
        strframe = NULL;
    }
}


注册信号回调函数

signal(SIGSEGV, SignalHandler);

相关推荐