Пример #1
0
    def demangled_name(self):

        if self.name[0:2] == "_Z":
            ast = parse(self.name)
            if ast:
                return ast.__str__()
        return self.name
Пример #2
0
    def demangled_name(self):

        if self.name[0:2] == "_Z":
            ast = parse(self.name)
            if ast:
                return ast.__str__()
        return self.name
Пример #3
0
 def _try_demangle(name):
     if name[0:2] == "_Z":
         try:
             ast = itanium_demangler.parse(name)
         except NotImplementedError:
             return name
         if ast:
             return str(ast)
     return name
Пример #4
0
    def __init__(self, name: str, address: int, symbol_type: str, demangled_name: Optional[str] = None):
        self.name = name
        self.address = address
        self.symbol_type = symbol_type

        if demangled_name is None:
            try:
                self.demangled_name = str(itanium_demangler.parse(name.split('@')[0]))
            except:
                self.demangled_name = demangled_name
        else:
            self.demangled_name = demangled_name
Пример #5
0
 def _try_demangle(name):
     if name[0:2] == "_Z":
         ast = itanium_demangler.parse(name)
         if ast:
             return str(ast)
     return name
Пример #6
0
def demangle(name):
    return str(parse(name))
Пример #7
0
 def assertParses(self, mangled, ast):
     result = parse(mangled)
     self.assertEqual(result, ast)
Пример #8
0
 def assertDemangles(self, mangled, demangled):
     result = parse(mangled)
     if result is not None:
         result = str(result)
     self.assertEqual(result, demangled)
Пример #9
0
def itanium_demangle(s):
	python_result = itanium_demangler.parse(itanium_demangle_filter(s))
	if python_result is not None:
		python_result = str(python_result)
	return python_result