Pydbg ответ XML, как войти в него, как xdebug?
У меня вопрос noob относительно DBGp и отладки скрипта Python.
Я пытаюсь сделать сеанс отладки зарегистрированным в файле, с ответом xml для каждой команды, которую я посылаю на сервер.
(xdebug делает это тривиально, и это то, чего я пытаюсь достичь).
Я на Mac и скачал pydbg: http://code.activestate.com/komodo/remotedebugging/
Отладка работает, но даже когда я устанавливаю уровень ведения журнала в DEBUG
Я получаю в журнал только отправленные команды.
то есть:
_getIncomingDataPacket getting data...
33['property_get -i 6 -n A -d 0 -p 0\x00']
put data in queue ['property_get -i 6 -n A -d 0 -p 0']
Я хочу войти что-то вроде этого:
<- breakpoint_set -i 1 -t line -f file:///Users/teixeira/etudes_php/vdebug.php -n 9 -s enabled
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1" state="enabled" id="183320001"></response>
(поэтому возврат XML регистрируется).
1 ответ
Я это сделал.
В последнем pydbg сверху url есть этот файл dbgp/client.py
,
Определяет класс dbgpSocket
и метод send_response
,
Вокруг линии 2245
есть:
def send_response(self, response):
if self._stop:
return
header = u'<?xml version="1.0" encoding="utf-8"?>\n'
response = (header+response)
try:
response = response.encode('utf-8')
except (UnicodeEncodeError,UnicodeDecodeError), e:
pass
#log.debug('sending [%r]', response)
try:
self._socket.send(_encode_response(response))
except socket.error, e:
self.stop()
Я просто должен был удалить комментарий из строки #log.debug('sending [%r]', response)
, чтобы log.debug('sending [%r]', response)
и это сработало!