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