【问题标题】:debug php use vim and xdebug , time setting调试 php 使用 vim 和 xdebug ,时间设置
【发布时间】:2012-04-03 14:31:32
【问题描述】:

我使用 vim + xdebug 来调试 php。如果调试操作浪费了很长时间,vim 将失去与 xdebug 的连接,我必须通过按 F5 重新启动调试,并从第一步重新开始。那么如何设置更长的调试时间呢?

【问题讨论】:

    标签: php vim xdebug


    【解决方案1】:

    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
    

    【讨论】:

    • 这不是我的问题。我猜是apache超时设置导致的。谢谢你的回答。
    【解决方案2】:

    你可以试试我的插件——DBGPavim

    http://www.vim.org/scripts/script.php?script_id=4059

    DBGPavim 没有这个限制,所以 VIM 用户不需要等待 apache 服务器的连接。没有超时的东西,用户按 F5 启动调试器后端,并正常使用他/她的 VIM。调试后端不会阻止用户与 VIM 交互。用户可以随时按 F6 停止调试器后端。

    【讨论】:

    • +1 很棒的插件。我花了一些时间才弄清楚如何设置它……因为它比 DGBp 简单得多。我喜欢这样一个事实,即使用 Virtualhost 指令进行参数设置很容易,因此不依赖于全局 php.ini 参数(如果您碰巧在同一台服务器上托管 PROD 和 DEV,这很有用)
    猜你喜欢
    • 2013-01-14
    • 2011-08-31
    • 2020-06-20
    • 1970-01-01
    • 2014-12-03
    • 2012-07-14
    • 2010-10-16
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多