2013-04-05 64 views
3

是否有可能使用x86上的(类似于AMD64)让gdb成功展开使用gcc编译的代码堆栈?如果是这样,那么需要什么来实现这个工作?在x86上没有帧指针的堆栈展开

只是要清楚:我可以重新编译,所以编译器选项是确定的,但我不能禁用忽略帧指针。

+0

为什么你不能删除您编译器选项'-fomit-帧pointer'?您显然希望要求编译器删除帧指针并不删除它:与您的部分相矛盾!如果使用'-fomit-frame-pointer'编译代码,会发生什么情况? – 2013-04-05 20:43:29

+0

@BasileStarynkevitch决定在x86上编译时没有帧指针。虽然我可以亲自使用帧指针编译本地实例,但在尝试调试使用集中构建的二进制文件的测试失败时无济于事。 – shroudednight 2013-04-05 21:01:34

回答

2

我一直在寻找的编译器选项是-fasynchronous-unwind-tables

+0

可以接受你自己的答案。我认为你应该在这种情况下。 – jszakmeister 2013-04-06 08:59:56

+0

完成,谢谢。主要是等待停电期过期 – shroudednight 2013-04-09 15:03:39