在glibc的ld.so中禁用xsave

问题描述 投票:2回答:1

我想使用gdb的录音,但由于glibc的ld.so使用xsave指令,我得到错误“进程记录不支持地址0x7ffff7fe883c处的指令0xfae64”。

由于stackoverflow answer,我能够通过二进制修补修复类似的错误。运行半小时后,用调试符号编译glibc会失败,所以如果有更快的解决方案,我会很高兴。我从here获得了一个编译版本,但看起来没有提供早期版本(即我现在使用glibc 2.28.r502.g065957a3704-1和gdb 8.2.1)。如何让gdb录音工作?

assembly linker gdb x86-64 glibc
1个回答
3
投票

问题是内置到gdb中的x86模拟器不了解许多较新的指令。唯一的解决方法就是等待一个新版本,其中包含相关指令。同时,this thread建议了一些解决方法:

  • 加载环境变量LD_BIND_NOW设置为1的二进制文件,以避免在动态链接器中触发xsave
  • 或者,链接要静态调试的二进制文件
  • 或者,与-z now链接,例如通过将-Wl,-z,now传递给C编译器
© www.soinside.com 2019 - 2024. All rights reserved.