【问题标题】:using Xdebug's bundled debugclient, example of how to set both local and global variables while stepping through a page使用 Xdebug 捆绑的调试客户端,示例说明如何在单步执行页面时设置局部变量和全局变量
【发布时间】:2020-05-07 21:54:08
【问题描述】:

我正在使用带有本地安装的 apache httpd.service 的 Centos 7.6。我已经安装了 xdebug v2.9.1 并通过一个简单的 phpInfo() 测试页面验证了它的配置。

当我在本地浏览器中通过 localhost 引用加载页面时,我可以启动 'debugclient' 和 step_into、step_over、status 和各种其他 xdebug 协议命令。

<?php
  $a = 0;
  echo "a= " . $a . PHP_EOL;
  $a += 1;
  echo "a= " . $a . PHP_EOL;
  $a += 1;
  echo "a= " . $a . PHP_EOL;
  $a += 1;
  echo "a= " . $a . PHP_EOL;
  echo "Done" . PHP_EOL;

能否请知情人士向我提供一个设置/创建变量并从 debugclient 命令行更改其值的命令示例?具体来说,在我的示例文件中:如何修改 '$a' 的值,从而改变通过 echo 语句报告的值?

是的。我知道除了“debugclient”之外还有其他调试器,但我试图了解 IDE 和网站主机之间的通信协议,因为它特别适用于 Xdebug 和 DBGP 协议;特别是因为提供的 Xdebug 文档没有在https://xdebug.org/docs/dbgp提供使用“eval”、“expr”和“exec”的示例

我尝试创建标签“debugclient”和“DBGP 协议”,但显然没有足够的“声誉”来这样做。

【问题讨论】:

    标签: xdebug


    【解决方案1】:

    你应该使用property_set -i 45 -n $a -- base64encodedvalue

    base64encodedvalue 应该是您要设置的值,使用 base64 编码。您可以使用php -r 'echo base64_encode("42");' 创建该值,因此完整示例变为:

    property_set -i 45 -n $a -- NDI=
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多