C++ 过滤不起作用。 C++ 名称去修饰
C++ filt not working. C++ name demangling
链接映射文件中的符号
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
使用 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
结果:
__ZZZZZZZZZZN5kinda16FillCardInfoPage6renderEvENK3
我认为该符号是未命名的 lambda 类型。能否得到真实范围和原名?
您需要在命令行参数周围添加单引号,以防止 shell 扩展其中的美元符号 ($
)。
链接映射文件中的符号
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
使用 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
结果:
__ZZZZZZZZZZN5kinda16FillCardInfoPage6renderEvENK3
我认为该符号是未命名的 lambda 类型。能否得到真实范围和原名?
您需要在命令行参数周围添加单引号,以防止 shell 扩展其中的美元符号 ($
)。