我有一个崩溃的小型转储。在崩溃点,有一些看起来不应该成功运行的奇怪代码。就像是:
call AnObject::AFunction
test byte ptr [eax],cl
AnObject::AFunction 是返回 bool 的成员函数。所以结果应该以 0 或 1 的形式存储在 eax 中。此时取消对 eax 的引用是没有意义的。
我反汇编了相应的二进制文件,确实,这个函数的代码不同:
call AnObject::AFunction
test al, al
为什么 minidump 反汇编代码与实际的二进制反汇编代码不同?