-
-
[原创]VC6.0 浮点未初始化bug的原因
-
发表于: 3天前 1057
-




可见 _cfltcvt_tab是一个全局的函数指针数组,且初始化赋值为 _fptrap
从注释中,可以发现决定初不初始化FPU的关键是 _cfltcvt_init,该符号在libc.lib中fpinit.obj中



为了更好观察 _FPinit变量,可以记录下当前指令地址 0x004017F3
使用OD调试器,调试该程序,并在断在入口点,Ctrl+G跳转到目标地址观察

// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int main(int argc, char* argv[])
{
float f;
printf("please input a float: ");
scanf("%f",&f);
return 0;
}
// 修改测试代码,旨在让vc6.0初始化FPU
float f = 1.0f;
赞赏
赞赏
雪币:
留言: