【问题标题】:Pydbg response xml, how to log it like xdebug?Pydbg响应xml,如何像xdebug一样记录它?
【发布时间】:2016-09-28 18:46:09
【问题描述】:

我有一个关于 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 返回)。

【问题讨论】:

    标签: xml macos python-2.7 logging pydbg


    【解决方案1】:

    我做到了。

    在上面 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()
    

    我只需将注释从#log.debug('sending [%r]', response) 行删除到log.debug('sending [%r]', response),它就成功了!

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      相关资源
      最近更新 更多