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
вопрос:
почему повышение (3) кадр адр настолько велик, что доза число означает?
Почему рейз (3) не имеет симметрии в стеке кадра?