该flds
指令应将值存储在寄存器中st0
。我正在调试一个我没有代码的共享库。有时该flds
指令对st0
. 下面是gdb
它工作时的情况和失败时的情况的输出。在损坏的情况下,fstat
寄存器是 0x2261 而不是 0x2061。0x200 标志表示什么?
工作版本:
0x6d9b4f : flds -0x4(%ebp) 0x6d9b52:离开 0x6d9b53 : 回复 (gdb) 信息寄存器 fstat st0 st1 st2 st3 st4 st5 st6 st7 fstat 0x2061 8289 st0 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st1 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st2 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st3 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st4 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st5 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st6 780250362506194(原始 0x4030b1688c6c5af48000) st7 1(原始 0x3fff8000000000000000) (gdb) 你 0x006d9b52 在启动() 1: x/3i $pc 0x6d9b52:离开 0x6d9b53 : 回复 0x6d9b54 : 推送 %ebp (gdb) 信息寄存器 fstat st0 st1 st2 st3 st4 st5 st6 st7 fstat 0x1861 6241 st0 -1584(原始 0xc009c600000000000000) st1 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st2 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st3 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st4 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st5 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st6 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st7 780250362506194(原始0x4030b1688c6c5af48000)
破解版:
0x6d9b4f : flds -0x4(%ebp) 0x6d9b52:离开 0x6d9b53 : 回复 (gdb) 信息寄存器 fstat st0 st1 st2 st3 st4 st5 st6 st7 fstat 0x2261 8801 st0 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st1 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st2 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st3 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st4 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st5 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st6 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st7 -nan(0xc000000000000000) (原始 0xffffc000000000000000) (gdb) 你 0x006d9b52 在启动() 1: x/3i $pc 0x6d9b52:离开 0x6d9b53 : 回复 0x6d9b54 : 推送 %ebp (gdb) 信息寄存器 fstat st0 st1 st2 st3 st4 st5 st6 st7 fstat 0x1a61 6753 st0 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st1 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st2 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st3 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st4 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st5 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st6 -nan(0xc000000000000000) (原始 0xffffc000000000000000) st7 -nan(0xc000000000000000) (原始 0xffffc000000000000000)