2016-05-30 5 views
1

私はDBGpとpythonスクリプトのデバッグに関するnoob質問があります。Pydbg応答xml、xdebugのようにログに記録する方法は?

デバッグセッションをの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リターンが記録されます)。

答えて

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)からコメントを削除する必要がありました、そしてそれは働きました!

関連する問題