3个版本
0.1.2 | 2022年4月5日 |
---|---|
0.1.1 | 2020年9月16日 |
0.1.0 | 2020年9月16日 |
#511 in 调试
7KB
86 行
cplus_demangle
cplus_demangle
此库将C++混淆的符号名称转换为可读字符串。它是对GNU libiberty的C函数 cplus_demangle
的安全Rust包装。我发现它比其他Rust原生实现快得多,也更稳健。
示例
假设您编译以下C++程序
namespace test {
void myfn(int x) { }
}
在生成的二进制文件中,为 myfn
生成的符号是 _ZN4test4myfnEi
。我们可以使用以下Rust代码将其转换回来
assert_eq!(cplus_demangle::demangle("_ZN4test4myfnEi").unwrap(), "test::myfn(int)");
lib.rs
:
cplus_demangle
此库将C++混淆的符号名称转换为可读字符串。它是对GNU libiberty的C函数 cplus_demangle
的安全Rust包装。
示例
假设您编译以下C++程序
namespace test {
void myfn(int x) { }
}
在生成的二进制文件中,为 myfn
生成的符号是 _ZN4test4myfnEi
。我们可以使用以下Rust代码将其转换回来
assert_eq!(cplus_demangle::demangle("_ZN4test4myfnEi").unwrap(), "test::myfn(int)");
依赖项
~225KB