gdbとは

linuxには標準でインストールされているデバッガです。gdbでPHPをデバッグする方法についてこちらのページで詳細に説明してあったので試しにやってみました。

gdbの使い方

gdbがlinuxにインストールされていれば、やり方はとっても簡単です。まずはgdbを起動。gdbコンソールが立ち上がってくれます。

>gdb
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".
(gdb)

起動後は、PHPをコアファイルからコマンドで読み込みます。

(gdb) file /usr/local/php5/bin/php

デバッグしてみたいファイルをrunで走らせればOKです。Pathは絶対パスで指定して下さい。

(gdb) run /www/htdocs/index.php

問題が無ければ、こんな感じで終わってくれます。

Program exited normally.
(gdb)

デバッグで判明したバグ

dtn.jpのインデックスPHPでやってみたところ、inlude()やrequire()でファイルを読み込んでいるあたりに、相対パスのままで指定してしまっているところが多々あり、エラーを吐き出してくれていました。

相対パスのままでもPHPがファイルを探し回ってくれているため、プログラム的には問題なく動いてしまいますが、けっこうな負荷はかかってたと思います。gdbデバッガ流石ですね。

PHPのinclude()の動き

PHPのinclude()の動きについてはこちらをご参照どうぞ。現在参照中のファイルのフルパス+ファイル名で、パスをきっちり書き直しておきました。

include(dirname(__FILE__) . "/etc/function.php");

おわりに

少ないプロセスは大切に使わないといけませんね。

ABOUT dtn.jp

この運営ブログをみてdtn.jpの運営サイトに興味をお持ちになった方は下記のリンク集からサイトをご参照ください。PHP・SQL・JS・HTML・CSSや様々なAPIでゼロから立ち上げたサイトを複数運営しています。

dtn.jp関連サイト

  • ディレクトリ型検索エンジンdtn大手サイトは全てサービスを終了し、中小でも運営を継続するところがほとんどなくなってしまったディレクトリ型検索エンジンを2002年から細々運営しており、未だに細かい機能改修も行っております。申請されたサイトは実際に訪問して細かく確認をしているので登録までかなりお時間いただきます。
  • 猫ネコサーチエンジン猫・ペットサイト専用のディレクトリ型検索エンジンです。登録サイトはサイトのスクリーンショット付きでカテゴリに掲載しています。
  • 画像掲示板の泉画像やYouTubeやニコニコ動画が貼り付け可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitter(ツイッター)のトレンドワード・ハッシュタグを月別ランキングでご紹介中。キーワードトレンド推移やハッシュタグツールもあります。
  • Keyword Tool++Yahoo APIや楽天サイトのデータを日次で収集したデータを元に、EC系キーワードをラインキング形式でご紹介しています。各ワードは検索ボリュームや関連語、24か月の検索ボリュームトレンドを確認も可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能なサイトにしています。
  • TrendinGファッションモールに出店するブランドをアイテムヒット率でランキングとしたサイトです。まだβ版です。

各サイトの開発方法などについて

各サイトの開発方法や運用トラブルについては、当ブログで不定期にご紹介しています。Twitterで新着記事のお知らせもしています。宜しければフォローどうぞ。