1

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 の戻り値がログに記録されます)。

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()

#log.debug('sending [%r]', response)行からコメントを削除するだけlog.debug('sending [%r]', response)で、うまくいきました!

于 2016-05-30T22:28:09.533 に答える