использование встроенного отладчика Xdebug, пример того, как устанавливать локальные и глобальные переменные при переходе по странице - PullRequest
0 голосов
/ 21 января 2020

Я использую Centos 7.6 с локально установленным apache httpd.service. Я установил xdebug v2.9.1 и проверил его конфигурацию с помощью простой тестовой страницы phpInfo ().

Когда я загружаю страницу через локальную ссылку в локальном браузере, я могу запустить 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 не предоставляет пример использования 'eval', 'expr' и 'exe c' в https://xdebug.org/docs/dbgp

Я пытался создать теги ' debugclient 'и' DBGP Protocol ', но, видимо, не хватает «репутации» для этого.

1 Ответ

0 голосов
/ 22 января 2020

Вы должны использовать property_set -i 45 -n $a -- base64encodedvalue

base64encodedvalue должно быть значением, которое вы хотите установить, закодированным в base64. Вы можете создать это значение с помощью php -r 'echo base64_encode("42");', чтобы полный пример стал:

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