2016-06-03 1 views
1

ENV: ядра Linux 3.4, uclibc 0.9.33почему не поднять (3) файл дампа памяти без создания кадра стека symble

Описание: Я использую рейз (3) и убить (3) отправить SIGSEGV для обработки и создания файла дампа ядра. Я нашел 2 файла bt - разница.

рейз (3):

void fun2(void) 
{ 
    raise(SIGSEGV); 
} 

void fun1(void) 
{ 
    fun2(); 
} 

int main(void) 
{ 
    fun1(); 
    return 0; 
} 

базовый стек файл дампа кадр:

(gdb) bt 
#0 0xc6f7f2d4 in ??() 
#1 0xc6f7f2a0 in ??() 
#2 0xc6f7f2a0 in ??() 

убийство (3):

void fun2(void) 
{ 
    kill(getpid(), SIGSEGV); 
} 

void fun1(void) 
{ 
    fun2(); 
} 

int main(void) 
{ 
    fun1(); 
    return 0; 
} 

базовый стек файл дампа кадр:

(gdb) bt 
#0 0xc6f043f0 in ??() 
#1 0x0000852c in fun2() at test.c:20 
#2 0x0000853c in fun1() at test.c:25 
#3 0x0000854c in main() at test.c:30 

вопрос:

  1. почему повышение (3) кадр адр настолько велик, что доза число означает?

  2. Почему рейз (3) не имеет симметрии в стеке кадра?

ответ

0

Я установил SYSROOT когда ядро ​​загрузки файла дампа, а затем поднять и убить Б.Т. стать одинаковыми.

Смежные вопросы