diff options
author | Tor Norbye <tnorbye@google.com> | 2014-08-21 00:31:02 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-08-16 04:55:08 +0000 |
commit | 9cde0e3c015174898df8b8f3672185941fad4786 (patch) | |
tree | 80a55c7b59c38377216daaada4e8bc47b69ceb9a /python/helpers/pydev/pydevd_xml.py | |
parent | 3b37877a2561bf9fbe072253a18688807d523505 (diff) | |
parent | d76e3920c56d37c942092b7dca20fcaded81c0a5 (diff) | |
download | idea-9cde0e3c015174898df8b8f3672185941fad4786.tar.gz |
Merge "Merge remote-tracking branch 'aosp/upstream-master' into merge"
Diffstat (limited to 'python/helpers/pydev/pydevd_xml.py')
-rw-r--r-- | python/helpers/pydev/pydevd_xml.py | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/python/helpers/pydev/pydevd_xml.py b/python/helpers/pydev/pydevd_xml.py index ac3f71cd9566..52bb186bc58e 100644 --- a/python/helpers/pydev/pydevd_xml.py +++ b/python/helpers/pydev/pydevd_xml.py @@ -1,6 +1,7 @@ import pydev_log import traceback import pydevd_resolver +import sys from pydevd_constants import * #@UnusedWildImport from pydev_imports import quote @@ -146,9 +147,9 @@ def frameVarsToXML(frame_f_locals): pydev_log.error("Unexpected error, recovered safely.\n") return xml - - -def varToXML(val, name, doTrim=True): + + +def varToXML(val, name, doTrim=True, additionalInXml=''): """ single variable or dictionary to xml representation """ is_exception_on_eval = isinstance(val, ExceptionOnEvaluate) @@ -162,19 +163,22 @@ def varToXML(val, name, doTrim=True): try: if hasattr(v, '__class__'): - try: - cName = str(v.__class__) - if cName.find('.') != -1: - cName = cName.split('.')[-1] - - elif cName.find("'") != -1: #does not have '.' (could be something like <type 'int'>) - cName = cName[cName.index("'") + 1:] - - if cName.endswith("'>"): - cName = cName[:-2] - except: - cName = str(v.__class__) - value = '%s: %s' % (cName, v) + if v.__class__ == frame_type: + value = pydevd_resolver.frameResolver.getFrameName(v) + else: + try: + cName = str(v.__class__) + if cName.find('.') != -1: + cName = cName.split('.')[-1] + + elif cName.find("'") != -1: #does not have '.' (could be something like <type 'int'>) + cName = cName[cName.index("'") + 1:] + + if cName.endswith("'>"): + cName = cName[:-2] + except: + cName = str(v.__class__) + value = '%s: %s' % (cName, v) else: value = str(v) except: @@ -218,4 +222,13 @@ def varToXML(val, name, doTrim=True): else: xmlCont = '' - return ''.join((xml, xmlValue, xmlCont, ' />\n')) + return ''.join((xml, xmlValue, xmlCont, additionalInXml, ' />\n')) + +if USE_PSYCO_OPTIMIZATION: + try: + import psyco + + varToXML = psyco.proxy(varToXML) + except ImportError: + if hasattr(sys, 'exc_clear'): #jython does not have it + sys.exc_clear() #don't keep the traceback -- clients don't want to see it |