简体   繁体   English

C++ 过滤器不工作。 C++ 名称拆解

[英]C++ filt not working. C++ name demangling

a symbol in linkmap file链接映射文件中的符号

0x10AEB7A48 0x00000034  [14199] __ZZZZZZZZZZN5kinda16FillCardInfoPage6renderEvENK3$_2clENSt3__110shared_ptrINS_12MMViewLayoutEEEENKUlNS3_INS_12MMScrollViewEEEE_clES7_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlNS3_INS_14MMBankEditViewEEEE_clESF_ENUlRKNS3_INS_5KViewEEEE_D1Ev

use c++flit:使用 c++flit:

➜  ~ c++filt --strip-underscore __ZZZZZZZZZZN5kinda16FillCardInfoPage6renderEvENK3$_2clENSt3__110shared_ptrINS_12MMViewLayoutEEEENKUlNS3_INS_12MMScrollViewEEEE_clES7_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlS5_E_clES5_ENKUlNS3_INS_14MMBankEditViewEEEE_clESF_ENUlRKNS3_INS_5KViewEEEE_D1Ev

➜  ~ c++filt --version
Apple LLVM version 12.0.0 (clang-1200.0.32.29)
Optimized build.
Default target: x86_64-apple-darwin20.3.0
Host CPU: skylake

result:结果:

__ZZZZZZZZZZN5kinda16FillCardInfoPage6renderEvENK3 __ZZZZZZZZZZN5kinda16FillCardInfoPage6renderEvENK3

I think the symbol is an unnamed lambda type.我认为该符号是未命名的 lambda 类型。 Can We get the real scope and original name?我们能得到真正的 scope 和原名吗?

You need to add single quote around the command-line argument, to prevent the shell from expanding the dollar sign ( $ ) in it.您需要在命令行参数周围添加单引号,以防止 shell 扩展其中的美元符号 ( $ )。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM