【发布时间】:2012-04-03 14:31:32
【问题描述】:
我使用 vim + xdebug 来调试 php。如果调试操作浪费了很长时间,vim 将失去与 xdebug 的连接,我必须通过按 F5 重新启动调试,并从第一步重新开始。那么如何设置更长的调试时间呢?
【问题讨论】:
我使用 vim + xdebug 来调试 php。如果调试操作浪费了很长时间,vim 将失去与 xdebug 的连接,我必须通过按 F5 重新启动调试,并从第一步重新开始。那么如何设置更长的调试时间呢?
【问题讨论】:
5 秒超时是在 debugger.py 中硬编码的。您可以通过修改以下行来增加它:
def accept(self):
print 'waiting for a new connection on port '+str(self.port)+' for 5 seconds...'
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serv.bind(('', self.port))
# Set a higher timeout here...
serv.listen(5)
(self.sock, address) = serv.accept()
except socket.timeout:
serv.close()
self.stop()
print 'timeout'
return
在我的插件版本中,这恰好是 debugger.py 的 line 556。如果您有不同,只需在 Vim 中搜索 5 或 second。
在第 666 行
也找到了 def __init__(self, port = 9000, max_children = '32', max_data = '1024', max_depth = '1', minibufexpl = '0', debug = 0):
""" initialize Debugger """
# Probably need to increase here too...
socket.setdefaulttimeout(5)
self.port = port
self.debug = debug
【讨论】:
你可以试试我的插件——DBGPavim
http://www.vim.org/scripts/script.php?script_id=4059
DBGPavim 没有这个限制,所以 VIM 用户不需要等待 apache 服务器的连接。没有超时的东西,用户按 F5 启动调试器后端,并正常使用他/她的 VIM。调试后端不会阻止用户与 VIM 交互。用户可以随时按 F6 停止调试器后端。
【讨论】: