diff --git a/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py b/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py index c8b2100c0..c85ad0f09 100644 --- a/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +++ b/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py @@ -83,7 +83,8 @@ def iterate(): # bodies of nested class and function definitions, as they have their # own objects. for _, lineno in dis.findlinestarts(code): - yield lineno + if lineno is not None: + yield lineno # For nested class and function definitions, their respective code objects # are constants referenced by this object. diff --git a/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py b/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py index 8c9dabb03..0911e2a6e 100644 --- a/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +++ b/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py @@ -59,7 +59,8 @@ def _get_code_line_info(code_obj): last_line = None for offset, line in dis.findlinestarts(code_obj): - line_to_offset[line] = offset + if line is not None and offset is not None: + line_to_offset[line] = offset if line_to_offset: first_line = min(line_to_offset) diff --git a/src/debugpy/_vendored/pydevd/pydevd.py b/src/debugpy/_vendored/pydevd/pydevd.py index 6eecb6c12..d8a37347b 100644 --- a/src/debugpy/_vendored/pydevd/pydevd.py +++ b/src/debugpy/_vendored/pydevd/pydevd.py @@ -791,10 +791,10 @@ def collect_try_except_info(self, code_obj): max_line = -1 min_line = sys.maxsize for _, line in dis.findlinestarts(code_obj): - if line > max_line: + if line is not None and line > max_line: max_line = line - if line < min_line: + if line is not None and line < min_line: min_line = line try_except_infos = [x for x in try_except_infos if min_line <= x.try_line <= max_line]