【发布时间】:2019-06-29 18:38:34
【问题描述】:
当使用 c++ 模板,尤其是元组时,我经常得到很长的乱码,比如
_ZN11__sanitizer13InternalAllocEmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32ILm0ELy140737488355328ELm0ENS_12SizeClassMapILm3ELm4ELm8ELm17ELm64ELm14EEELm20ENS_15TwoLevelByteMapILy32768ELy4096ENS_2
这在名义情况下显然很好,并且易于调试,但是,当我使用自定义类型的大型元组(具有大型命名空间)时,由于名称混乱,最终会产生非常大的二进制文件;一些工具(如 valgrind)甚至有一个符号名称最大长度,这使得分析几乎不可能。
我想知道是否有办法让 g++/clang++ 使用自定义修饰函数(比如 md5),这样很长的符号就变成了 5c66b1073e1b453900bd7d32cb79fc0e,它更短了。
【问题讨论】:
标签: c++ g++ clang++ name-mangling