xdebug正在调试时跳过行

时间:2013-06-05 20:04:52

标签: php eclipse debugging xdebug

使用Eclipse / xdebug和Windows 2008服务器。昨天我能够成功调试一个php文件。今天,有一个非常相似的PHP文件,它正在跳过线,然后进入遗忘状态。 代码段:

//$data = file_get_contents('php://input');
$data = '[{"ARDivisionNo":"01","CustomerNo":"ABF","ContactCode":"ARTIE   JOHN","CustomerName":"American Business Futures","fname":"Artie ","lname":"Johnson","EmailAddress":"philmcintosh@comcast.net","Billing_Address1":"2131 N. 14th Street","Billing_Address2":"Suite 105","Billing_Address3":"Accounting Department","Billing_City":"Irvine","Billing_State":"CA","Billing_Zip":"92618","UDF_FC_ENABLED":"Y","UDF_FC_CUSTOMERID":2.0,"UDF_FC_ADDRESS_BOOK_ID":3.0,"TelephoneNo1":"","FaxNo":""}]'; 
$json = json_decode($data, true);

Foreach ($json as $i => $row) {
    $customers_id = tep_db_prepare_input($row['UDF_FC_CUSTOMERID']);
    $customers_firstname = tep_db_prepare_input($row['fname']);

(我在json中粘贴用于调试目的 - 昨天在另一个文件中工作。) 在这个文件中,第一个奇怪的事情是调试器实际停止在注释掉的“$ data = file_get_contents('php:// input');”线。 在下一个“$ data =”行之后,它会跳到“$ customers_id =”行。此时,$ data在变量窗口中显示为空。 关于什么是错误/如何修复的任何想法?

1 个答案:

答案 0 :(得分:2)

Xdebug可能看起来与您认为的源代码文件不同。在开始调试之前,您确定先保存了文件吗?

在某些情况下,Xdebug会跳过行,因为它没有看到任何断点。这是因为PHP本身并不总能提供这种可能性。它通常在没有{和}的if / else语句中。为了找出发生了什么,您可以通过添加到php.ini来创建远程调试日志:

xdebug.remote_log=/tmp/xdebug.log

Xdebug会将所有通信数据包写入此日志供您查看。也许这给了一个线索。