我想使用gdb的记录,但是因为glibc的ld.so使用xsave指令,所以出现错误“进程记录不支持地址0x7ffff7fe883c的指令0xfae64。”
多亏了stackoverflow answer,我得以通过二进制补丁修复了类似的错误。运行半小时后,使用调试符号编译glibc失败,因此,如果有更快的解决方案,我将感到高兴。我从here获得了一个编译版本,但似乎没有提供任何早期版本(即,我现在使用的是glibc 2.28.r502.g065957a3704-1和gdb 8.2.1)。如何使gdb录制工作?
答案 0 :(得分:3)
问题是gdb内置的x86模拟器不了解许多较新的指令。唯一的解决方法是等待修补了相关说明的新版本。同时,this thread建议采取多种解决方法:
LD_BIND_NOW
设置为1
的二进制文件,以避免在动态链接程序中触发xsave
-z now
链接,例如通过将-Wl,-z,now
传递给C编译器