为什么 raise(3) 核心转储文件没有堆栈帧符号
why raise(3) core dump file no stack frame symble
ENV: linux 内核 3.4,uclibc 0.9.33
描述: 我使用 raise(3) 和 kill(3) 发送 SIGSEGV 来处理和创建核心转储 file.I 找到 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
问题:
为什么 raise(3) frame addr 这么大,这个数字是什么意思?
为什么 raise(3) 在堆栈帧中没有符号?
我在加载核心转储文件时设置了 sysroot,然后 raise 和 kill bt 变得相同。
ENV: linux 内核 3.4,uclibc 0.9.33
描述: 我使用 raise(3) 和 kill(3) 发送 SIGSEGV 来处理和创建核心转储 file.I 找到 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
问题:
为什么 raise(3) frame addr 这么大,这个数字是什么意思?
为什么 raise(3) 在堆栈帧中没有符号?
我在加载核心转储文件时设置了 sysroot,然后 raise 和 kill bt 变得相同。