示例#1
0
文件: api.py 项目: int19h/ptvsd
def wait_for_attach():
    log.debug("wait_for_attach()")
    dbg = get_global_debugger()
    if dbg is None:
        raise RuntimeError("wait_for_attach() called before enable_attach()")

    cancel_event = threading.Event()
    ptvsd.wait_for_attach.cancel = wait_for_attach.cancel = cancel_event.set
    pydevd._wait_for_attach(cancel=cancel_event)
示例#2
0
def wait_for_client():
    ensure_logging()
    log.debug("wait_for_client()")

    pydb = get_global_debugger()
    if pydb is None:
        raise RuntimeError("listen() or connect() must be called first")

    cancel_event = threading.Event()
    debugpy.wait_for_client.cancel = wait_for_client.cancel = cancel_event.set
    pydevd._wait_for_attach(cancel=cancel_event)
示例#3
0
def wait_for_attach():
    log.info("wait_for_attach()")
    dbg = get_global_debugger()
    if not bool(dbg):
        msg = "wait_for_attach() called before enable_attach()."
        log.info(msg)
        raise AssertionError(msg)

    cancel_event = threading.Event()
    ptvsd.wait_for_attach.cancel = wait_for_attach.cancel = cancel_event.set
    pydevd._wait_for_attach(cancel=cancel_event)
if __name__ == '__main__':
    import os
    import sys
    import time
    port = int(sys.argv[1])
    root_dirname = os.path.dirname(os.path.dirname(__file__))

    if root_dirname not in sys.path:
        sys.path.append(root_dirname)

    import pydevd
    try:
        pydevd._wait_for_attach()  # Cannot be called before _enable_attach.
    except AssertionError:
        pass
    else:
        raise AssertionError('Expected _wait_for_attach to raise exception.')

    assert sys.gettrace() is None
    print('enable attach to port: %s' % (port, ))
    pydevd._enable_attach(('127.0.0.1', port))
    pydevd._enable_attach(('127.0.0.1', port))  # no-op in practice

    try:
        pydevd._enable_attach(
            ('127.0.0.1', port + 15))  # different port: raise error.
    except AssertionError:
        pass
    else:
        raise AssertionError(
            'Expected _enable_attach to raise exception (because it is already hearing in another port).'
if __name__ == '__main__':
    import os
    import sys
    import time
    port = int(sys.argv[1])
    root_dirname = os.path.dirname(os.path.dirname(__file__))

    if root_dirname not in sys.path:
        sys.path.append(root_dirname)

    import pydevd
    try:
        pydevd._wait_for_attach()  # Cannot be called before _enable_attach.
    except AssertionError:
        pass
    else:
        raise AssertionError('Expected _wait_for_attach to raise exception.')

    assert sys.gettrace() is None
    print('enable attach to port: %s' % (port,))
    pydevd._enable_attach(('127.0.0.1', port))
    pydevd._enable_attach(('127.0.0.1', port))  # no-op in practice

    try:
        pydevd._enable_attach(('127.0.0.1', port + 15))  # different port: raise error.
    except AssertionError:
        pass
    else:
        raise AssertionError('Expected _enable_attach to raise exception (because it is already hearing in another port).')

    assert pydevd.get_global_debugger() is not None