在glibc的ld.so中禁用xsave

rub*_*ion 2 assembly linker gdb glibc x86-64

我想使用gdb的记录,但是因为glibc的ld.so使用xsave指令,所以出现错误“进程记录不支持地址0x7ffff7fe883c的指令0xfae64”。

多亏了stackoverflow的回答,我才能用二进制补丁修复类似的错误。运行半小时后,使用调试符号编译glibc失败,因此,如果有更快的解决方案,我将感到高兴。我从这里获得了一个编译版本,但似乎没有提供任何早期版本(即,我现在使用的是glibc 2.28.r502.g065957a3704-1和gdb 8.2.1)。如何使gdb录制工作?

fuz*_*fuz 5

问题在于gdb内置的x86模拟器不了解许多较新的指令。唯一的解决方法是等待修补了相关说明的新版本。与此同时,此线程提出了许多解决方法:

  • 加载环境变量LD_BIND_NOW设置为二进制1以避免触发xsave在动态链接器中
  • 或者,链接要静态调试的二进制文件
  • 或者,-z now通过传递-Wl,-z,now给C编译器进行链接