Pydbg 响应 xml,如何像 xdebug 一样记录它?
Pydbg response xml, how to log it like xdebug?
我有一个关于 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 return)。
我做到了。
在上面 url 的最新 pydbg 中,有这个文件 dbgp/client.py
。
它定义了classdbgpSocket
和一个方法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)
行的注释,就成功了!
我有一个关于 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 return)。
我做到了。
在上面 url 的最新 pydbg 中,有这个文件 dbgp/client.py
。
它定义了classdbgpSocket
和一个方法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)
行的注释,就成功了!