Xdebugでプラグインをデバッグする方法は?


12

PHP 5.3.0(XAMPP)ベースのローカル環境に、NetBeans 6.9.1とXdebugを非常に簡単にインストールしてセットアップできました。

私の問題は次のとおりです。Wordpressのindex.phpまたは他のWordpressコアPHPファイルにブレークポイントを設定すると、NetBeansは目的の位置で正しく停止します。代わりに、プラグインファイルにブレークポイントを設定した場合、コード実行NetBeansのトリガーはそこで停止しません。

どのように解決できるか知っていますか?

更新:私がデバッグしようとしているものに関する詳細情報

プラグインはバニラフォーラムと呼ばれ、次のファイル構造があります。

- plugins
  - vanilla-forums
    + assets
    + nbproject
    + templates
      admin.php
      embed.php
      functions.php
      hooks.php
      plugin.php
      sso.php
      widgets.php

vf_validate_options定義されfunctions.phpた名前の関数内にブレークポイントを設定します。この関数は確実に実行されますが、NetBeansはそこで壊れません。


throw new Exception('die');ブレークポイントの行の後にステートメントを置いた場合、そのステートメントは停止しますか(これにより、要求が強制終了/終了されます)?
hakre

@hakreはい、例外をスローします(ブレークポイントが設定されているコードが実行されると確信しています)
Drake

1
@Drake:このコードはメインページで実行されますか、それともAjax呼び出しで実行されますか?XdebugデバッガーをいくつかのGETまたはPOST変数で有効にしてからCookieを設定する必要があると思います。Ajaxリクエストでは有効になっていない可能性がありますか?
Jan Fabry、

1
私はまったく同じ問題を抱えていますが、まだ修正を見つけることができません!私はnusphere phpedを使用していますが、Eclipseも試してみましたが結果はありませんでした!xdebugがブレークポイントで停止する唯一のファイルは、ワードプレスの「コア」ファイルです。テーマのphpファイルもデバッグできません!あなたが解決策を見つけたら私に知らせてください、私は返信なしでワードプレス公式フォーラムに投稿しました:(
Kreker

1
Jan Fabryがソリューションに取り組んでいると思います。私はすべてのリクエストにクエリパラメータを追加するFirefoxプラグインEasyXdebugを使用することを好みXDEBUG_SESSION_STARTます。
ジェフスティーラー、2011年

回答:




0

こんにちは@ドレイク:

愚かな質問ですが、プラグインを「アクティブ化」しましたか?プラグインがデバッグされていないときに、ここがトリップします。


はい、プラグインは有効になっています。デバッグしようとしているのは、管理者領域のプラグインselfによって作成されたメニューによる関数トリガーです。
Drake

@Drake- 「関数トリガー」とは何ですか? 質問の更新としてコードを投稿できますか?
MikeSchinkel、2011

0

プラグインのファイルをデバッグする方法はありません。私がデバッグワードプレスで見つけた唯一の方法は、残念ながらフリーウェアではないnusphere phpedを使用することです。それしかできないようですが、理由はわかりませんが、netbeansとeclipseでデバッグする方法を考え出すのに非常に長い時間を費やしています...結果はありません!


-3

ええと、WordPress自体がを提供しているWP_DEBUGので、wp_die($msg)なぜ... Xdebugでデバッグする必要があるのでしょうか。フレームワークを使用してプラグインをビルドしているのでない限り?


xdebugは、WP_DEBUGおよび出力が提供しない多くのツールを提供します-プロファイリングおよび開始のためのコードのステップスルー...
boisvert

当時、Xdebugに関する知識はほとんどありませんでした。
adrian7
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.