Signal handler中调用backtrace不能得到正确的函数栈?

我使用signal绑定了一些crash的信号,在一个function中做会产生这些信号的crash操作,然后在signal handler中调用backtrace获取函数栈,但是貌似执行到会导致crash的那一行代码的时候,转到其他的地方去raise signal了,导致我的函数栈里没有我需要的导致崩溃的那一个函数(或者是没有正确的偏移,不能定位到指定代码)。请问有人有这方面的经验吗?

可以参考 http://stackoverflow.com/questions/77005/how-to-generate-a-stacktrace-when-my-gcc-c-app-crashes 得票第二高的人得回答。我直接用得票最多的办法跑出来结果也是有问题的。得票第二的人得解决办法是获取当前上下文的RIP,然而我的RIP里面的数很奇怪。不能定位到指定位置。

best wishes