eclipse pdt_使用Eclipse和PDT调试PHP

本文档详细介绍了如何在Eclipse中使用PHP Development Tools (PDT) 插件进行PHP项目的调试。从系统要求到安装配置调试器(如Zend Debugger和XDebug),再到设置PDT和调试简单脚本及Web应用程序,覆盖了使用Eclipse进行PHP调试的全过程。通过本教程,读者将学会如何利用PDT的PHP Debug透视图,查看和使用断点,调试PHP脚本和Web应用程序。
摘要由CSDN通过智能技术生成

eclipse pdt

在你开始前

关于本教程

本教程演示了如何配置EclipsePHP开发工具(PDT)插件来调试PHP脚本。 它还介绍了仔细查看PHP脚本时将使用的观点(即,PHP Debug)。

目标

完成本教程后,您将可以设置XDebug(一个开放源代码项目,可以调试可执行脚本和在Web服务器上运行的脚本),也可以使用PDT项目在Eclipse中使用Zend Debugger开发PHP应用程序。 您将了解PDT项目PHP Debug透视图的各个部分,并了解如何设置,查看和使用断点。 您还将学习如何在单步执行代码时检查变量的值,以及如何在本地服务器上调试PHP Web应用程序,以便可以使用调试器在PHP Web应用程序中运行。

先决条件

为了充分利用本教程,您应该做一些PHP开发。 但是更重要的是,您通常已经完成了软件开发。 如果您熟悉调试其他任何语言,则可以更好地理解调试概念。 我写这篇文章对那些对Eclipse刚起步的人有所帮助,而不是对那些已经使用Eclipse一段时间的人有所帮助。

系统要求

要完成本教程,您需要:

运行Microsoft®Windows®,Mac OS X或Linux®的计算机
本教程中显示的php.ini文件示例适用于Mac OS X和Linux。 因为这两个调试器都需要一个配置来告诉PHP调试器扩展的位置,所以唯一的区别(如果要查找Windows示例)是调试器扩展的路径。 库名称以.so结尾。 适用于Mac OS X和Linux,适用于Windows的.dll ; 此外,路径使用正斜杠( / )代替反斜杠( \ )作为目录分隔符。
PHP V5.x
Linux用户可以使用发行版中包含的软件包系统来安装PHP。 OS X和Windows用户可以找到PHP V5.x中在PHP.net。

注意:本教程中的示例是使用PHP V5.2.5编写的。

Eclipse V3.3
同样,Linux用户也很容易:Eclipse通常可以通过其发行版中包含的软件包系统获得。 其他人都可以在Eclipse下载中找到Eclipse集成开发环境(IDE)。
用于服务Web应用程序的Apache或Microsoft Internet信息服务(IIS)
您需要安装Web服务器来运行示例,这些示例演示如何在服务器上调试PHP Web页面。 但是,如果您只对调试非Web页面PHP脚本感兴趣,则不需要Web服务器。 在本教程中,我们将Apache V2设置为Web服务器。 如果您使用的是Windows而宁愿使用IIS,那也可以。 本教程假定您具有适当的访问权限,可以写入Web服务器文档根目录内的目录。
Eclipse PHP开发工具框架
如果尚未安装PHP开发工具(PDT) ,则可能需要先阅读“ PDT项目概述”部分,以便可以决定是否要下载和安装与Zend Debugger捆绑在一起的PDT。 Eclipse Foundation PDT / Installation Wiki很简短,但很有帮助。
Zend Studio Web调试器
下载Zend Studio Web调试器的30天试用版。

入门

用旧方法调试PHP

在能够在IDE中使用调试器之前,我调试PHP脚本的主要方法是:

  1. 设置一堆显示变量值的echo语句。 在部署脚本之前,我必须将其删除或注释掉。
  2. 使用“我在这里” echo语句来打印脚本中的位置。 在部署脚本之前,我还必须删除这些代码行或将其注释掉。
  3. 调整php.ini文件,告诉PHP打印详细消息,包括警告。 这样做可能会引起安全问题,因为它可能会显示您不想显示的内容。 如果您要在本地进行开发并将脚本部署到其他服务器,那么问题就不大了。
  4. 使用记录器类,例如Log PEAR模块。 这是一个很好的选择,因为记录器允许您设置优先级,以便以后可以静默调试消息。 但是,它需要一定的时间(尽管相对较小)来配置并提出在不同环境中具有不同日志记录级别的过程。 通常,您可能希望在开发环境中看到“调试”消息,而在生产环境中仅看到“警告”消息或以上消息。 无论使用哪种调试技术,我都建议为PHP应用程序找到并使用日志记录框架。 调试器的缺点是有时开发人员倾向于忽略添加适当日志记录的时间投入。

尽管所有这些技术对我来说都工作了好几年,但它们比在调试器中逐步调试应用程序要花费更多的时间。 因此,您可以在IDE内部使用调试器节省大量时间。 此处介绍了两个调试器(XDebug和Zend Debugger)的设置。

PDT项目概述

与Eclipse Europa一起安装的PDT插件使您能够快速编写和调试PHP脚本和页面。 PDT项目支持两个调试工具:XDebug和Zend Debugger。 本教程演示了如何配置PDT以使用任一调试器调试PHP脚本。

PDT V1.0于2007年9月发布。该工具与Web工具平台(WTP)一起使用,以提供使用Eclipse构建PHP项目和PHP文件的功能。 如果您已经在使用Eclipse进行Java™开发,则PDT项目提供了一些功能,例如PHP透视图和PHP Debugging透视图。 PHP编辑器具有语法突出显示,代码格式化,语法验证和代码模板。 使用PDT,您可以执行PHP脚本并在Web服务器上运行它们,PDT还支持在本地和服务器上调试PHP文件(尽管调试需要一些设置)。 本教程重点介绍如何配置PDT以使用受支持的PDT调试器之一:XDebug或Zend Software的Zend Debugger(请参阅参考资料 )。

您不需要同时安装两个调试器。 您可以选择并使用其中之一。 本教程涵盖了这两个方面,使您可以决定要使用和安装哪一个。 安装一个后,您可以调试任何PHP脚本。 使用PHP Debug透视图,您可以查看变量值和断点以及逐步执行代码。 下一节将深入探讨透视图的不同部分以及如何使用它们。

为本教程做好准备

安装PDT之后,您必须添加几个可用于遵循的项目。 第一个是一个简单的脚本,可以打印一定次数的问候语。 第二个项目是具有两个页面的Web应用程序。 这些示例在任何一个调试器中都可以正常运行,并且在添加这些项目之前不需要设置调试器。

添加简单项目

具有简单示例脚本的简单PHP项目演示了调试器和PDT Debug透视图的功能。 如果您没有可用的示例,请执行以下步骤来创建一个简单PHP项目作为示例。 (或者,从“ 下载”部分下载代码。)

  1. 选择New> Project ,然后从列表中选择PHP Project ,如图1所示,然后单击Next
图1.添加一个PHP项目
添加一个PHP项目
  1. 键入simpleDebugExample作为项目名称,如下所示。 选中使用默认复选框,然后点击完成
图2.输入项目信息
输入项目信息
  1. 当项目出现在您的工作空间中时,添加清单1中的文件。
清单1. helloworld.php
<?php
$name = "world";
for ($i = 0; $i %gt; 100; $i++) {
	print("Hello, $name ($i)!\n");
}
?>
添加Web应用程序示例

该Web应用程序示例包含几个Web页面,因此您可以看到如何使用调试器在服务器上逐页调试PHP Web页面。 您将能够看到如何捕获从一页发布到另一页的变量。 要设置Web应用程序示例:

  1. 选择New> Project添加一个新项目,然后从列表中选择PHP Project ,如图3所示,然后单击Next
图3.添加一个PHP Web项目
添加一个PHP Web项目
  1. 修改项目内容所在的位置。

    与简单示例不同,您可能需要修改项目内容所在的位置。 要进行此类修改,请清除“ 使用默认值”复选框,然后单击“ 浏览”以找到适合您PHP网页的位置。 由于这些网页需要在服务器上执行,因此您可以在Web服务器可以到达的位置构建整个工作区,也可以调整此设置以将某些程序包内容放入可访问的位置。 我不希望Web服务器可以访问我的整个工作区,因此我使用此设置仅将Web应用程序内容放入文件夹中。 例如,我的设置是/ Users / nagood / Sites / webDebugExample。 在我的计算机上,可以通过URL http:// localhost /〜nagood / webDebugExample访问该目录。

  2. 添加新项目后,添加三个新文件。 清单2显示了第一个-enterGreeting.php。
清单2. enterGreeting.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<?php

$name = "world";

print("<b>Hello, $name</b>");

?>
<form action="results.php" method="post">
<input type="hidden" name="name" value="<?php print($name); ?>" />
<input type="text" name="greeting" value="" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
  1. 添加三个文件中的第二个:results.php。 清单3显示了该文件的内容。
清单3. results.php
<html>
<head><title>Results</title>
</head>
<body>
<?php
include_once 'GreetMaster2000.php';

print ("Hello, " . $_POST['name'] . "!");
print ("<br />");

$gm = new GreetMaster2000();
$gm->setGreeting($_POST['greeting']);

print ("<b>Your greeting is:  <i>" . $gm->getFormalGreeting() . 
    "</i></b>");

?>
</body>
</html>
  1. 添加三个文件中的第三个文件GreetMaster2000.php,如清单4所示。该文件包含一个类,以演示调试后的类。
清单4. GreetMaster2000.php
<?php
class GreetMaster2000
{
    private $greeting;
    private $name;
    
    public function __construct()
    {
        $this->name = "The GreetMaster 2000 (model Z)";
    }
    
    public function setGreeting($message)
    {
        $this->greeting = $message;
    }
    
    public function getGreeting()
    {
        return $this->greeting;
    }
    
    public function getFormalGreeting()
    {
        return "I, the " . $this->name . ", say to you:  \"" . 
            $this->getGreeting() . "\"";
    }
    
}
?>

PHP Debug透视图

在设置调试器并开始调试刚刚创建的项目之前,请熟悉PHP Debug透视图,以便您轻松调试PHP应用程序。

首次选择Debug As> PHP ScriptDebug As> PHP Web Page来调试PHP文件时,Eclipse询问您是否要切换到PHP Debug透视图。 如果单击“ 是” ,则会出现图4所示的透视图。 在调试PHP脚本时,不同的视图包含最常用的信息。

图4. PHP Debug透视图
PHP Debug透视图

调试视图

调试视图显示有关正在运行的进程的信息。 在图5所示的选项卡上,代码在第5行停止。第5行在sayHello()函数内部,该函数在视图中列出。 {main}条目始终引用脚本的主体,您可以通过查看Debug视图中的信息来判断sayHello()位于脚本的第13行。

图5. Debug视图
调试视图

调试视图的顶部边框有几个按钮。 调试时,您可以使用这些按钮来逐步浏览,遍历或超出部分PHP文件。 最常用的按钮是:

删除所有终止的启动
这会通过清除视图中所有终止(完成)的启动来清理“调试”视图。 每当您开始调试PHP文件时,都会在Debug视图中记录启动,该启动包含有关已执行过程的信息。 进程终止后,它仍然在Debug视图中徘徊。 您可以通过单击上下文菜单中的“重新启动”来重新启动它。
执行到下一个断点
调试器将运行当前的调试过程,直到下一个断点。 如果没有设置断点,则过程将一直进行到完成。
暂停调试器
暂停当前​​所在的任何位置的进程。 这在调试长时间运行的循环以找出未设置断点的位置时很方便。
终止调试器
停止调试。
断开调试器
如果要在服务器上调试,请单击此按钮以将调试器客户端与服务器断开连接。 服务器继续处理。
进入代码
如果当前行是函数,则调试器将进入该函数,以便您对其进行调试。
跳过代码
如果当前行是函数,则调试器将跳过该函数。 函数内部的代码仍将执行,但您不必单步执行。
退出代码
如果您正在使用某个函数,并且确定不想再进行调试,请单击此按钮。 该函数执行完毕,调试器中当前的停止点跳到该函数的调用方。

变量视图

变量视图包含有关范围内变量的信息。 当变量进入和离开作用域时,它们将从该视图中出现或消失。 下面的示例显示变量$howManyTimes和循环变量$i

图6.变量视图
变量视图

断点视图

“断点”视图显示为整个项目设置的所有断点。 在此视图中,您可以通过清除断点旁边的复选框来临时禁用断点。

图7.断点视图
断点视图

编辑器视图

在单步执行代码时,可以在PHP编辑器的“编辑器”视图中查看代码。

图8.编辑器视图
编辑器视图

控制台视图

如果您PHP文件是一个简单的脚本,该脚本使用print()echo()方法打印消息,则这些消息将显示在“控制台”视图中。 对于本教程中的简单示例,您将看到问候语多次打印到控制台上。

调试输出视图

调试输出视图在适用的情况下显示调试器的输出。 Zend Debugger在此视图中显示信息。

浏览器输出视图

“浏览器输出”视图显示了如果PHP脚本是Web页面将显示给浏览器的内容。 使用Zend Debugger时,在绘制网页时,其原始HTML格式的输出将打印在此处。 以这种形式查看您的页面可能会对那些在浏览器中查看网页时不一定可见HTML元素有所帮助。

安装和配置调试器

此时,您应该在工作空间中设置几个示例项目,并熟悉PHP Debug透视图中的不同视图。 本节介绍如何配置调试器并将其挂钩到PDT中,以便您可以在示例项目中开始调试PHP文件。

这两个调试器都需要进行设置,基本上包括以下步骤:将扩展复制到目录中;配置php.ini文件以使用该扩展;使用几个配置值配置扩展本身;以及重新启动Web服务器。 完成这项工作后,您可以使用任一调试器开始调试PHP Web应用程序。

注意:如果您只想调试PHP脚本(而不是服务器上的Web页)并且尚未安装PDT,那么调试PHP脚本的最快方法是使用Zend.com上的Eclipse更新站点。安装与Zend Debugger捆绑在一起的PDT版本。 安装后,您将能够立即在IDE中调试PHP脚本。

安装Zend调试器

捆绑的Zend Debugger易于安装,因为您可以从Zend的更新站点获得它,就像从Eclipse更新站点安装PDT一样。 如果从Zend的站点下载捆绑版本的PDT,则可以立即开始调试脚本。

如果要使用Zend Debugger调试服务器上PHP网页,则需要安装PHP扩展并在php.ini配置文件中对其进行配置。 要安装和配置扩展,请执行以下操作:

  1. 从Zend的网站下载Zend Web服务器扩展二进制文件。
  2. 解压缩包含二进制文件的ZIP文件。
  3. 将扩展二进制文件(称为ZendDebugger.dll或ZendDebugger.so )复制到文件夹中。 您不必将它们放在PHP扩展文件夹中,但这是复制它们的好地方,因为这样所有扩展二进制文件都位于同一位置。 如果您不知道是哪个文件夹,请参阅“ 故障排除 ”以了解如何确定该文件夹。
  4. 使用清单5中所示的设置更新php.ini文件。您可能需要验证是否正在编辑正确的php.ini文件—。 另外,您必须确保zend_extension指令正确。 有关更多信息,请参见“ 故障排除 ”。
清单5.修改后的php.ini
[Zend]
zend_extension="/full/path/to/ZendDebugger.so"
zend_debugger.allow_hosts="127.0.0.1, 10.0.1.3"
zend_debugger.expose_remotely=always
  1. 重新启动您的Web服务器。
  2. 通过在脚本中使用phpinfo()函数或通过php -m命令验证Zend Debugger是否已正确安装,然后在[Zend Modules]下查看。
清单6. php -m命令的输出
[Zend Modules]
Zend Debugger

如果在尝试验证安装时未看到列出的模块,则将无法通过PDT运行调试器,如下一节所述。 您必须先正确安装模块,然后才能在服务器上调试文件。

验证模块已成功安装后,请继续“设置PDT”部分。

安装XDebug

要将XDebug用作PDT的调试器,您需要下载XDebug并安装它,就像完全不用Eclipse一样。 有在马丁施特莱歇尔的文章,题为“PHP应用程序与XDebug的壁球的bug”(见下载并安装XDebug的很好的说明相关主题 )。 在撰写本文时,这些说明仍然适用,并且本教程仅在非常高的级别上介绍它们:

  1. 根据需要下载二进制文件(Windows)或源文件(Linux或Mac OS X)。
  2. 如果您使用的是Mac OS X或Linux,请编译XDebug库。 为此,请首先在目录中运行phpize命令,然后运行make命令,如下所示。
清单7.编译XDebug的命令
# cd [directory_with_source]
# phpize
# make
  1. 编辑php.ini文件,以使用适当的zend_extension指令包含XDebug的模块(有关详细信息,请参见“ 故障排除 ”)。
  2. 重新启动您的Web服务器。
  3. 通过在Web服务器上的脚本中使用php -m命令或phpinfo()函数,验证XDebug是否已正确安装。 phpinfo()输出的示例如图9所示php -m输出如清单8所示。
图9. phpinfo()输出中的XDebug
phpinfo()输出中的XDebug
清单8. XDebug的示例php -m输出
[Zend Modules]
Xdebug

必须先正确安装模块,然后才能使用PDT和XDebug进行调试。 如果看不到模块信息,请查看“ 故障排除 ”部分以获取提示。

使用XDebug进行调试要比使用Zend Debugger进行更多的调试工作,因为您可能必须自己编译模块。 但是现在您可以在Web服务器上调试本地脚本和文件了。

配置调试器

安装了两个受支持的调试器后,可以进一步使用Eclipse中PHP \ Debug下的首选项来配置PDT的工作方式,如下所示。

图10. PHP Debug首选项
PHP调试首选项

请注意,默认情况下,这两个调试器设置为侦听不同的端口:Zend Debugger和XDebug分别为10000和9000。 根据您在环境中设置的内容,您可能必须修改设置。 如果更改端口设置,请确保未将调试器配置为绑定到相同的端口(如果已安装)。

设置PDT

此时,您应该已经安装和配置了XDebug或Zend Debugger,并且应该已经验证它是否已正确安装。 在可以连接到任何一个调试器并将其与PDT结合使用之前,必须对PDT进行一些配置更改,以告诉它要使用哪个调试器。

设置您PHP服务器

在安装PDT时,您应该已经有了一个可在其上运行项目PHP服务器。 如果已经设置了默认的Web服务器,则可以跳过此部分。 但是,如果没有,则可以设置服务器,以便可以在本地计算机上调试PHP网页。

设置服务器:

  1. 打开PHP服务器首选项,展开PHP ,然后单击PHP Servers ,如下所示。
图11. PHP服务器首选项
PHP服务器首选项
  1. 单击“ 新建”将新服务器添加到列表中。
  2. 在“ 配置PHP服务器”中 ,在“ 名称”字段中键入一个名称(例如PHP Server ,然后键入基本URL(例如, http://localhost )。
  3. 单击下一步
  4. 单击Add添加新的路径映射(请参见图12)。 您可以单击浏览以从工作区中选择一个位置,然后确保资源的完整路径显示在“ 服务器上路径”字段中。 例如,在我的webDebugExample项目中, 在工作区路径中有/ webDebugExample, 在“服务器上路径”字段中有/ Users / nagood / Sites / webDebug。
图12.添加一个新的服务器映射
添加新的服务器映射

设置PHP可执行文件

使用调试器之前,必须验证PHP可执行文件是否正确设置。 打开Eclipse首选项,展开PHP ,然后单击PHP Executables ,如图13所示。在这里,您可以从Zend的站点上看到PDT项目捆绑版本的全新安装;请参见图13。 可执行文件已经设置好了,无事可做。

图13. PHP Executables首选项
PHP可执行文件首选项

要添加和配置新的可执行文件,请单击添加 。 出现Add new PHP Executable窗口,如图14所示。在Name字段中输入一个描述性名称(名称可以包含空格),然后单击Browse找到PHP可执行文件路径(即/ usr / local / php5 /)。 bin或C:\ PHP)和php.ini文件(如果您不知道文件的位置,请参阅“ 疑难解答 ”以获取有关查找此文件的提示)。

图14.定义一个PHP可执行文件
定义一个PHP可执行文件

最后,选择正确PHP调试器。 重要的是:如果选择了错误的调试器,则项目可能根本不执行或可以执行,但不会在断点处停止。

调试简单的脚本或Web应用程序

您的工作区中有一些示例项目。 您还应该熟悉PHP Debug透视图。 XDebug或Zend Debugger均已安装,正确配置和验证。 最后,应该将PDT配置为使用已安装的调试器。 完成所有这些之后,您就可以准备调试第一个PHP脚本了。

设置断点以调试脚本

要查看调试的工作方式,最好设置一个调试器将在其处停止的断点。 当调试器在断点处停止时,可以使用PHP Debug透视图中的各种视图来检查变量值。 您还可以使用“调试”视图中的按钮逐步浏览代码。

因此,在helloworld.php脚本的第7行上设置一个断点。 为此,请选择helloworld.php,然后选择“运行”>“调试为”>“ PHP脚本” 。 如果这是您的第一次调试,Eclipse会询问您是否要自动切换到PHP Debug透视图。 如果您希望在调试PHP脚本时激活“ PHP调试”透视图,请单击“ 是” ,然后选择“ 记住我的决定” ,如下所示。

图15.自动切换到Debug PHP透视图
自动切换到Debug PHP透视图

启动后,PHP脚本在第一行代码处中断。 这是设计使然的默认配置。 从这里,您可以单步执行代码或前进到下一个断点。 如果前进到在第7行设置的断点,则“调试”视图将显示您已暂停在断点处。

图16.挂在断点处(第7行)
暂停在断点(第7行)

当您仍然在断点处暂停时,请查看Variables视图(请参见图17)。 $name$i这两个变量现在都在作用域中,您可以看到它们的值。 $name变量包含字符串world ,而$i变量设置为0

图17. helloworld.php的第7行的变量
helloworld.php的第7行的变量

因为断点在循环内,所以执行下一个断点将进入循环中的下一个迭代。 您可以在“变量”视图中观察$i增量的值。

要继续执行而不停止每次迭代,请打开Breakpoints视图,如图18所示。通过清除helloworld.php(行:7)旁边的复选框,暂时禁用断点。 现在,当您再次执行下一个断点时,调试器将跳过所有下一个迭代并运行到最后。

图18. helloworld.php中的断点
helloworld.php中的断点

您可以添加变量并修改代码以进行实验,并查看调试器的行为。

调试您的Web应用程序

奇怪的是,您正在使用PHP来构建Web应用程序,并且想要在服务器上调试PHP脚本。 通过在服务器上调试PHP网页,可以查看如何设置服务器变量(例如$_GET$_POST ,以便您了解它们的值并可以在页面之间进行调试。

要尝试调试PHP应用程序,请使用webDebugExample项目。 这是一个简单的示例,允许您在输入字段中键入一个值,然后提交表单以供results.php脚本处理。 在完成此练习时,您可以遵循如何使用表单中变量的名称和值填充$_POST变量。

选择enterGreeting.php,然后选择运行>调试为> PHP网页 。 如果这是您第一次运行调试器,系统将提示您输入文件的启动URL。 在这里,您键入文件的完整URL,请记住该文件将位于Web资源所在的位置。 例如,我的位于http://localhost/~nagood/webDebug/enterGreeting.php。 接下来,在results.php文件的第14行设置一个断点。

清单9.第14行的断点
print ("<b>Your greeting is:  <i>" . $gm->getFormalGreeting() 
    . "</i></b>");

启动PHP Web应用程序时,调试器将在enterGreeting.php文件的第一行停止。 您可以单步执行以查看调试器的运行情况,或者只是执行到最后。

在表单的文本输入框中键入一个值,然后单击Submit 。 现在,调试器在results.php文件的第一行停止。 执行到在脚本的第14行设置的断点,您将看到$gm变量中填充了一个值,并且$_POST数组具有上一页中的值。

图19. results.php中的变量
results.php中的变量

从第14行开始,您可以执行到最后,也可以在“调试”视图中单击“单执行”以单步进入 GreetMaster2000类的getFormalGreeting()函数。

故障排除

本节提供了对调试器和关联文件进行故障排除的过程和技术。

找到正确的php.ini文件

将PHP配置为使用调试器扩展(XDebug或Zend Debugger)时,确保您编辑的是正确的php.ini文件,并且调试器具有正确的zend_extension变量,这一点很重要。 要查找您PHP安装所使用的php.ini文件的完整路径,请在Web目录中放置的简单脚本中使用phpinfo()函数。

清单10.简单的phpinfo.php脚本
<?php
    phpinfo();
?>

或者,键入命令php -i | grep "Loaded Conf" php -i | grep "Loaded Conf" ,您将得到类似Loaded Configuration File => /usr/local/php5/lib/php.ini

使用正确的zend_extension指令

现在,您确定需要编辑哪个php.ini文件,获取正确的zend_extension指令以用于安装非常重要。 再次使用phpinfo()php -i方法来找到两个值: Thread SafetyDebug Build 。 表1可以帮助您确定要使用哪一个。 一个常见的错误是在需要使用zend_exention_ts时使用zend_extension ,这是一个很难发现的错误(一开始)。

表1.选择正确的配置密钥
键名 线程安全 除错
zend_extension
zend_extension_ts
zend_extension_debug
zend_extension_debug_ts

调试器不会停止

如果调试器根本没有停止,则很可能发生以下三个问题之一:

  • 首先是您没有正确设置扩展模块(可能的原因请参阅“使用正确的zend_extension指令”)。
  • 如果您已验证扩展程序设置正确,则可能未设置PDT以使用已安装的调试器。 如果您选择Zend Debugger作为PHP可执行文件的调试器,但是在php.ini文件中设置了XDebug,您将得到一些非常意外的行为。
  • 否则可能是防火墙问题。 确保已在防火墙允许的“ PHP调试器”首选项中配置了端口(如果已安装并正在运行防火墙)。

确定您的扩展目录位置

要将XDebug或Zend Debugger扩展二进制文件与所有其他扩展名安装在同一位置,请使用phpinfo()php -i找出目录的位置。 有关php -i命令的示例,请参见清单11。

清单11.查找扩展目录
...
extension_dir => /usr/local/php5/lib/php/extensions/
...

摘要

PDT项目支持两个调试器:XDebug和Zend Debugger。 结合使用PDT和受支持的调试器之一,您可以以图形方式轻松地调试PHP脚本和Web应用程序。 使用IDE调试PHP可以节省大量时间,尤其是与使用较旧技术的调试脚本或使用命令行进行调试相比。


翻译自: https://www.ibm.com/developerworks/opensource/tutorials/os-php-eclipse-pdt-debug/index.html

eclipse pdt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值