时间:2021-07-01 10:21:17 帮助过:38人阅读
const IOS_MIN_ID = 2200000000;
$id = '2200087853';
if(intval($id) >= IOS_MIN_ID)
return true;//判断始终失败
echo intval('2200087853');// 2147483647
//应该返回数字2200087853的
本地系统是64位的,但php是32位的,服务器上却没问题,于是bug了
在知乎上看到你碰到过的最难调的 Bug 是什么样的
大家说说自己开发中遇到的一些诡异的bug,然后怎么解决的?直接上代码比较明了
说一个我最近遇到的:
用的一个第三方库用intval转换字符串
const IOS_MIN_ID = 2200000000;
$id = '2200087853';
if(intval($id) >= IOS_MIN_ID)
return true;//判断始终失败
echo intval('2200087853');// 2147483647
//应该返回数字2200087853的
本地系统是64位的,但php是32位的,服务器上却没问题,于是bug了
这个 bug。意识到它的存在之后我调试过好几次,历时数月,依然不得其解,甚至打算等有空了编译调试版本的 libnotify。后来经朋友协助,研究 StackOverflow 上的回答,加粗文字反汇编查看,才终于明白原来它自从我从32位系统迁移到64位就一直存在了。
PS: 最近在 GtiHub 上很火的:danluu/debugging-stories