private void clearTempVariables(final String threadId) { final Map<String, Set<String>> threadVars = myTempVars.get(threadId); if (threadVars == null || threadVars.size() == 0) return; for (Map.Entry<String, Set<String>> entry : threadVars.entrySet()) { final Set<String> frameVars = entry.getValue(); if (frameVars == null || frameVars.size() == 0) continue; final String expression = "del " + StringUtil.join(frameVars, ","); try { evaluate(threadId, entry.getKey(), expression, true); } catch (PyDebuggerException e) { LOG.error(e); } } myTempVars.clear(threadId); }
// todo: change variable in lists doesn't work - either fix in pydevd or format var name // appropriately private void setTempVariable( final String threadId, final String frameId, final PyDebugValue var) { final PyDebugValue topVar = var.getTopParent(); if (!myDebugProcess.canSaveToTemp(topVar.getName())) { return; } if (myTempVars.contains(threadId, frameId, topVar.getTempName())) { return; } topVar.setTempName(generateTempName()); try { doChangeVariable(threadId, frameId, topVar.getTempName(), topVar.getName()); myTempVars.put(threadId, frameId, topVar.getTempName()); } catch (PyDebuggerException e) { LOG.error(e); topVar.setTempName(null); } }
private void cleanUp() { myThreads.clear(); myResponseQueue.clear(); mySequence = -1; myTempVars.clear(); }