2009-05-02 7 views
3

私はxdbugを使ってPHPプロジェクトのコードをしばらくデバッグして理解してきましたが、PHP内部で何が起こっているのかが不明確な状況に陥っていることがあります。PHPのデバッグ

実際のPHP組み込み関数をトレースできるようにxdebugやgdbを設定することはできますか?

答えて

2

macosx、solaris、または最近のfreebsdシステムを使用している場合は、少しdtraceを投げることができます。それはあまりにも多くの人々のために便利になることができます "WTFはPHPをやっている?瞬間

+0

速いgoogleが見つかったhttp://blogs.sun.com/bmc/entry/dtrace_and_php_demonstrated - 開始するための詳しい情報がある場合は、 – xkcd150

+0

を投稿してください。私はそのリンクを認識していませんでした。私は、PHPからのすべてのファイルシステムコールをトレースするだけで十分な問題を抱えていました。特にfopensと群れを探しています。 PHPはinclude_once/require_once宣言が好きではないことが判明しました(私が扱っていたように、use(perl)/ import(java)置換ではありません)。参照されるファイルが多すぎると、群れによって死が起こるでしょう。 – Trey

+0

ああ、これは良いリソースだった。 http://www.brendangregg.com/DTrace/dtrace_oneliners.txt – Trey

1

xdebugは、内部コードではなくPHPコードをトレースすることを目的としています。内部はバグフリーであると仮定されています(明らかに時々そうではありませんが、xdebugの範囲を超えています)。

組み込み関数が何をしているかを知りたければ、いつもPHPソースを見ることができますが、時にはかなり毛深いこともあります。 PHPマニュアルのドキュメントは、私が彼らが何をするのかを知りたい時には、いつも私に十分役立ってきました。

1

一つの方法を、オペコードの内部を覗くために、あなたが使用することができますも表示されますDerick Rethan's VLD(バルカンロジックDissasembler)、になる。PECL注:は、* nixシステムでのみ動作します(要件については、サイトを参照してください)。

これらのオペコードをデバッグするいくつかの例は、Understanding OpcodesおよびHow long is a piece of string?などの記事でSara Golemon's blogにあります。

+1

いいです、私もそれを試してみる必要があります。ありがとう! – xkcd150

1

することができますphp libraryと素晴らしいGoogle Chrome拡張PHP Consoleもあります:

  • クロームJavaScriptコンソールで&通知ポップアップでエラー&例外を参照してください。
  • 任意の型変数をダンプします。
  • PHPコードをリモートで実行します。
  • パスワードによるアクセスを保護します。
  • コンソールログを要求ごとにグループ化します。
  • エラーファイルに移動:テキストエディタの行。
  • エラー/デバッグデータをクリップボードにコピーします(テスター用)。

誰にもおすすめ!

関連する問題