- 错误现象
- 解决方法
https://blog.csdn.net/zhutou_xu/article/details/114803337
https://zhuanlan.zhihu.com/p/368606446 错误现象
替换so文件,执行程序产生coredump;
反汇编发现cordump里存在不可能存在的汇编语句。
0x00104c47 <+1267>: call 0x104c48 <_ZN10abc3runEv+1268> 0x00104c4c <+1272>: movl $0x3e8,(%esp) 0x00104c53 <+1279>: call 0x104c54 <_ZN10abc3runEv+1280> 0x00104c58 <+1284>: add $0x10,%esp 0x00104c5b <+1287>: sub $0xc,%esp 0x00104c5e <+1290>: push 0x4c 正常这里应该是一个很大的地址数,但是这里是变量的一个offset 数值是0x4c,如果要使用立即数,那么前面要有 $符号 0x00104c64 <+1296>: call 0x104c65 <_ZN10abc3runEv+1297> /// 而且这里call的地址是当前函数的下一个地址,有明显需要重定向的需求,动态库重定向。解决方法
mv 原有动态库到一个其他文件名,
然后将新的动态库 copy 过来,
然后重启 可执行程序。



