我正在对其中一个共享库使用readelf。当我阅读这些符号时,包含许多展开符号的列表如下所示。
23:001e0c48 36 FUNC GLOBAL DEFAULT 13 _Unwind_Resume
5998:00000000 0函数弱默认值__gnu_Unwind_Find_exidx
5999:001e0b54 0 FUNC全局默认值13 __gnu_Unwind_Restore_VFP_D
6000:001e0b44 0 FUNC全局默认值13 __gnu_Unwind_Restore_VFP
6001:001e0b64 0 FUNC全局默认值13 __gnu_Unwind_Restore_VFP_D_16_to_31
6002:001e0b74 0 FUNC全局默认值13 __gnu_Unwind_Restore_WMMXD
6003:001e0bfc 0 FUNC全局默认值13 __gnu_Unwind_Restore_WMMXC
6005:001e0080 8 FUNC全局默认值13 _Unwind_GetCFA
6006:001e0088 164 FUNC GLOBAL DEFAULT 13 __gnu_Unwind_RaiseException
6007:001e012c 28 FUNC全局默认值13 __gnu_Unwind_ForcedUnwind
6008:001e0148 116 FUNC全局默认值13 __gnu_Unwind_Resume
6009:001e01bc 32 FUNC GLOBAL DEFAULT 13 __gnu_Unwind_Resume_or_Rethrow
6010:001e01dc 4 FUNC GLOBAL DEFAULT 13 _Unwind_Complete
6011:001e01e0 24 FUNC全局默认值13 _Unwind_DeleteException
6012:001e01f8 92 FUNC全局默认值13 _Unwind_VRS_Get
6013:001e027c 92 FUNC GLOBAL DEFAULT 13 _Unwind_VRS_Set
6014:001e0304 200 FUNC全局默认值13 __gnu_Unwind_Backtrace
6018:001e07d0 864 FUNC GLOBAL DEFAULT 13 _Unwind_VRS_Pop
6019:001e0b5c 0 FUNC全局默认值13 __gnu_Unwind_Save_VFP_D
6020:001e0b4c 0 FUNC全局默认值13 __gnu_Unwind_Save_VFP
6021:001e0b6c 0 FUNC全局默认值13 __gnu_Unwind_Save_VFP_D_16_to_31
6022:001e0bb8 0 FUNC全局默认值13 __gnu_Unwind_Save_WMMXD
6023:001e0c10 0 FUNC全局默认值13 __gnu_Unwind_Save_WMMXC
6025:001e0c24 36 FUNC全局默认值13 ___ Unwind_RaiseException
6026:001e0c24 36 FUNC全局默认值13 _Unwind_RaiseException
6027:001e0c48 36 FUNC全局默认值13 ___ Unwind_Resume
6028:001e0c6c 36 FUNC全局默认值13 ___ Unwind_Resume_or_Rethrow
6029:001e0c6c 36 FUNC全局默认值13 _Unwind_Resume_or_Rethrow
6030:001e0c90 36 FUNC全局默认值13 ___ Unwind_ForcedUnwind
6031:001e0c90 36 FUNC全局默认值13 _Unwind_ForcedUnwind
6032:001e0cb4 36 FUNC全局默认值13 ___ Unwind_Backtrace
6033:001e0cb4 36 FUNC全局默认值13 _Unwind_Backtrace
6035:001e113c 16 FUNC全局默认值13 _Unwind_GetRegionStart
6036:001e114c 28 FUNC GLOBAL DEFAULT 13 _Unwind_GetLanguageSpecificData
6037:001e1168 8 FUNC全局默认值13 _Unwind_GetDataRelBase
6038:001e1170 8 FUNC全局默认值13 _Unwind_GetTextRelBase
我检查了库的源代码,但找不到这些符号的引用。我猜想,在编译源文件或链接到库时,它们可能使用了一些标志来生成这些符号。
您知道哪个clang ++标志用于生成这些符号吗? 这些符号的用途是什么?
答案 0 :(得分:0)
我会说这是异常处理,如果您不使用异常,则可以使用-fno-exceptions
请参阅https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/libgcc-sman.html