From 6552978f446152e2485ccf76a77d55cd85f236dd Mon Sep 17 00:00:00 2001 From: Elizaveta Shashkova Date: Mon, 15 Jun 2015 20:02:38 +0300 Subject: [PATCH] Fix exception with dictionary keys with tab symbols (PY-16188) Replace tabs in keys with special symbols for sending to debugger --- python/helpers/pydev/pydevd_vars.py | 3 +++ .../jetbrains/python/debugger/pydev/GetVariableCommand.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/python/helpers/pydev/pydevd_vars.py b/python/helpers/pydev/pydevd_vars.py index 178b11c25674..ecc0ae1e4608 100644 --- a/python/helpers/pydev/pydevd_vars.py +++ b/python/helpers/pydev/pydevd_vars.py @@ -200,6 +200,9 @@ def getVariable(thread_id, frame_id, scope, attrs): else: attrList = [] + for attr in attrList: + attr.replace("@_@TAB_CHAR@_@", '\t') + if scope == 'EXPRESSION': for count in xrange(len(attrList)): if count == 0: diff --git a/python/pydevSrc/com/jetbrains/python/debugger/pydev/GetVariableCommand.java b/python/pydevSrc/com/jetbrains/python/debugger/pydev/GetVariableCommand.java index 8eeb4a87e968..466780066f77 100644 --- a/python/pydevSrc/com/jetbrains/python/debugger/pydev/GetVariableCommand.java +++ b/python/pydevSrc/com/jetbrains/python/debugger/pydev/GetVariableCommand.java @@ -26,7 +26,7 @@ public class GetVariableCommand extends GetFrameCommand { sb.insert(0, BY_ID).insert(0, '\t').insert(0, p.getId()); break; } else { - sb.insert(0, p.getTempName()); + sb.insert(0, p.getTempName().replaceAll("\t", TAB_CHAR)); } p = p.getParent(); }