From b97519db07c6cddd483b35aa6a431f3c1e922f88 Mon Sep 17 00:00:00 2001 From: Elizaveta Shashkova Date: Mon, 21 Dec 2015 20:01:52 +0300 Subject: [PATCH] Fix Jinja2 template debugging (PY-18051) We should update additional frames container after updating thread id. --- python/helpers/pydev/pydevd.py | 4 ++++ python/helpers/pydev/pydevd_vars.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/python/helpers/pydev/pydevd.py b/python/helpers/pydev/pydevd.py index 6c3b58f824e6..6bedfd61a8fe 100644 --- a/python/helpers/pydev/pydevd.py +++ b/python/helpers/pydev/pydevd.py @@ -563,8 +563,12 @@ class PyDB: elif isThreadAlive(t): if not self._running_thread_ids: + old_thread_id = GetThreadId(t) thread_id = GetThreadId(t, True) curr_thread_id = GetThreadId(threadingCurrentThread()) + if pydevd_vars.hasAdditionalFramesById(old_thread_id): + frames_by_id = pydevd_vars.getAdditionalFramesById(old_thread_id) + pydevd_vars.addAdditionalFrameById(thread_id, frames_by_id) else: thread_id = GetThreadId(t) program_threads_alive[thread_id] = t diff --git a/python/helpers/pydev/pydevd_vars.py b/python/helpers/pydev/pydevd_vars.py index ecc0ae1e4608..4491d4623989 100644 --- a/python/helpers/pydev/pydevd_vars.py +++ b/python/helpers/pydev/pydevd_vars.py @@ -80,6 +80,12 @@ def removeAdditionalFrameById(thread_id): del AdditionalFramesContainer.additional_frames[thread_id] +def hasAdditionalFramesById(thread_id): + return DictContains(AdditionalFramesContainer.additional_frames, thread_id) + + +def getAdditionalFramesById(thread_id): + return AdditionalFramesContainer.additional_frames.get(thread_id) def findFrame(thread_id, frame_id):