1

我有一个关于 DBGp 和调试 python 脚本的菜鸟问题。

我正在尝试将调试会话记录在一个文件中,其中包含我发送到服务器的每个命令的 xml 响应

(xdebug 做的很简单,这就是我想要实现的)。

我在 Mac 上下载了 pydbg:http ://code.activestate.com/komodo/remotedebugging/

调试工作正常,但即使我将日志记录级别设置为,DEBUG我也只能记录发送的命令。

IE:

_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 返回)。

4

1 回答 1

0

我做的。

在上面 url 的最新 pydbg 中,有这个文件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()

我只需要从 line #log.debug('sending [%r]', response), to中删除评论log.debug('sending [%r]', response),它就起作用了!

于 2016-05-30T22:28:09.533 回答