ホームページ > バックエンド開発 > PHPチュートリアル > javascript - 说说你遇到的bug

javascript - 说说你遇到的bug

WBOY
リリース: 2016-06-06 20:28:55
オリジナル
1296 人が閲覧しました

在知乎上看到你碰到过的最难调的 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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート