PHP 開発者の為の Xdebug のすすめ

  目次













  ダウンロードとインストール



http://xdebug.org/index.php よりダウンロードします
Xdebug1 と Xdebug2 がありますが、余程詳しく分析しない限り Xdebug1 で十分でしょう

2005/11/20 時点で、以下をダウンロードします

Xdebug1
Modules for 4.3.x (binary):
Windows (>= 4.3.5 only)

インストールは、xdebug-4.3-1.3.2.dll を適当なディレクトリに置いて ( 例:C:\php\extensions )
php.ini の [PHP] セクションに以下を記述します

zend_extension_ts = "C:\php\extensions\xdebug-4.3-1.3.2.dll"



  基本設定

  
zend_extension_ts = "C:\php\extensions\xdebug-4.3-1.3.2.dll"
xdebug.manual_url = "http://jp2.php.net"
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *
  



  テストコード

control.php
  
<?
xdebug_start_trace();
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( "model.php" );

# **********************************************************
# 定数定義
# **********************************************************
define( 'PASS_MESSAGE', 1 );
define( 'PASS_HEAD', 2 );
define( 'PASS_BODY', 3 );

# **********************************************************
# グローバル変数
# **********************************************************
$Target		= 'ABC';

# **********************************************************
# 処理
# **********************************************************
Test(1,2);

xdebug_dump_function_trace();
xdebug_dump_superglobals();
?>
  

model.php
  
<?
# **********************************************************
# テスト
# **********************************************************
function Test( $a, $b ) {

	print $a . $b;

}
?>
  
以下は、control.php?a=1 で実行した結果です

12
Function trace
Time#FunctionLocation
0.002921
  ->
require_once(model.php)D:\winofsql\winofphp\xdebug\control.php:6
0.002974
  ->
define ('PASS_MESSAGE', 1)D:\winofsql\winofphp\xdebug\control.php:11
0.003058
  ->
define ('PASS_HEAD', 2)D:\winofsql\winofphp\xdebug\control.php:12
0.003117
  ->
define ('PASS_BODY', 3)D:\winofsql\winofphp\xdebug\control.php:13
0.003176
  ->
test(1, 2)D:\winofsql\winofphp\xdebug\control.php:23
Dump $_GET
$_GET['a']'1'
Dump $_POST



  エラーを発生させる

実行時エラーに対する結果表示ですが、意図的に発生させてチェックするという手法も有効です

テストコードの
xdebug_start_trace();
xdebug_dump_function_trace();
xdebug_dump_superglobals();
をそれぞれコメントにして、model.php を以下のようにします
  
<?
# **********************************************************
# テスト
# **********************************************************
function Test( $a, $b ) {

	print $a . $b;
	trigger_error( "test!", E_USER_WARNING );
}
?>
  

以下は処理結果です

12
Warning: test! in D:\winofsql\winofphp\xdebug\model.php on line 8
Call Stack
#FunctionLocation
1{main}()D:\winofsql\winofphp\xdebug\control.php:0
2test(1, 2)D:\winofsql\winofphp\xdebug\control.php:23
3trigger_error ('test!', 512)D:\winofsql\winofphp\xdebug\model.php:8
Dump $_GET
$_GET['a']'1'
Dump $_POST

この場合、発生させたエラーは WARNING なので、
xdebug_start_trace();
xdebug_dump_function_trace();
xdebug_dump_superglobals();
との併用も可能です

また、trigger_error( "test!", E_USER_WARNING ); を記述するのが面倒であれば
print 1/0; として Division by zero ( ゼロ割り算 ) を発生させるのも良いでしょう













   SQLの窓    create:2005/11/20  update:2015/09/23   管理者用(要ログイン)





フリーフォントツール

SQLの窓ツール

SQLの窓フリーソフト

写真素材

一般ツールリンク

SQLの窓

フリーソフト