中文名称:蟒蛇接口
cxxfilt的Python项目详细描述
Python/接口中的C++符号离散化:
用法
安装:
pip install cxxfilt
使用^ tt1}$来破译一个C++符号符号名称:
>>> import cxxfilt >>> cxxfilt.demangle('_ZNSt22condition_variable_anyD2Ev') 'std::condition_variable_any::~condition_variable_any()'
未损坏的名称将保持完整:
>>> cxxfilt.demangle('main') 'main'
要请求内部符号,请使用external_only=false:
>>> cxxfilt.demangle('N3foo12BarExceptionE') 'N3foo12BarExceptionE' >>> cxxfilt.demangle('N3foo12BarExceptionE', external_only=False) 'foo::BarException'
无效的损坏名称将触发InvalidName异常:
>>> cxxfilt.demangle('_ZQQ') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/path/to/python-cxxfilt/cxxfilt/__init__.py", line 77, in demangle return demangleb(mangled_name.encode()).decode() File "/path/to/python-cxxfilt/cxxfilt/__init__.py", line 69, in demangleb raise InvalidName(mangled_name) cxxfilt.InvalidName: b'_ZQQ'
使用demangleb在bytes:
>>> cxxfilt.demangleb(b'_ZNSt22condition_variable_anyD2Ev') b'std::condition_variable_any::~condition_variable_any()'
支持的环境
Python2.7/3.3+
在Arch Linux和FreeBSD上测试。应该在带有libc和libc++/libstdc++的unix系统上工作
在Windows上不起作用。
测试
在shell中运行:
pytest