Почему в моей общей библиотеке есть символы раскрутки - PullRequest
0 голосов
/ 25 октября 2018

Я использую readelf в одной из моих общих библиотек.Когда я читаю символы, список содержит множество символов для размотки, как показано ниже.

23: 001e0c48 36 FUNC GLOBAL DEFAULT 13 _Unwind_Resume

5998: 00000000 0 FUNC WEAK DEFAULT UND __gn_F_exid

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 GLOBAL DEFAULT 13 __gnu_Unwind_Restore_WMMXD

6003: 001e0bfc 0 FUNC GLOBAL DEFAULT 13 __gnu_Unwind_Restore_WMM 0 600B * 600 * F * F6 * FF6 * F * F * FFC * FFC * FFC * FFC * FFC FBC * FFC FUNC * FFC FUNC DEFAULT_WMMXC * FFC FUNC DEFAULT_WMMXC * FFC FUNC GLOBAL DEFAULT 13 ________глобальный параметр по умолчанию 13 __gnu_Unwind_RaiseException

6007: 001e012c 28 FUNC глобального значения по умолчанию 13 __gnu_Unwind_ForcedUnwind * * * тысяча двадцать две 1023 * 6008: 001e0148 116 FUNC глобального значения по умолчанию 13 __gnu_Unwind_Resume

6009: 001e01bc 32 FUNC глобального параметр по умолчанию 13 __gnu_Unwind_Resume_or_Rethrow

6010: 001e01dc 4 ФУНКЦИОНАЛЬНЫЙ ГЛОБАЛЬНЫЙ ПО УМОЛЧАНИЮ 13 _Unwind_Complete

6011: 001e01e0 24 ФУНКЦИОНАЛЬНЫЙ ГЛОБАЛЬНЫЙ ПО УМОЛЧАНИЮ 13 _Unwind_DeleteException

* 130 EF * 0301033 * 6013: 001e027c 92 ФУНКЦИЯ ГЛОБАЛЬНОГО ПО УМОЛЧАНИЮ 13 _Unwind_VRS_Set

6014: 001e0304 200 ФУНКЦИЯ ГЛОБАЛЬНОГО УМОЛЧАНИЯ 13 __gnu_Unwind_Backtrace

6018: 0500: 05005050 FUNC GLOBAL DEFAULT 13 __gnu_Unwind_Save_VFP_D

6020: 001e0b4c 0 FUNC GLOBAL DEFAULT 13 __gnu_Unwind_Save_VFP

6021: 001e0b6c 0 FUNC GLOBAL DEFAULT 13 __gnu_Unwind_Save_VFP_D_16_to_31

6022: 001e0bb8 0 FUNC GLOBAL DEFAULT 13__gnu_Unwind_Save_WMMXD

6023: 001e0c10 0 FUNC глобального значения по умолчанию 13 __gnu_Unwind_Save_WMMXC

* тысяча сорок-девять * 6025: 001e0c24 36 FUNC глобального значение по умолчанию 13 ___ Unwind_RaiseException
1 051 * 6026: 001e0c24 36 FUNC глобального параметра по умолчанию 13 _Unwind_RaiseException * тысяча пятьдесят-два *

6027: 001e0c48 36 FUNC GLOBAL DEFAULT 13 ___ Unwind_Resume

6028: 001e0c6c 36 FUNC GLOBAL DEFAULT 13 ___ Unwind_Resume_or_R_Trow *

6029: 0 0 0 0 0 0 0 0 0 0 6 0 0 6 6 0 6 0 6 0 6 0 6 6 0 6 0 0 6 0 6 0 6 0 6 6 6 6 только сейчас:ГЛОБАЛЬНОЕ ПО УМОЛЧАНИЮ 13 ___ Unwind_ForcedUnwind

6031: 001e0c90 36 FUNC ГЛОБАЛЬНОЕ ПО УМОЛЧАНИЮ 13 _Unwind_ForcedUnwind

6032: 001e0cb4 36 FUNC ГЛОБАЛЬНЫЙ УМОЛЧЕНО 13 60Б1066 *

6035: 001e113c 16 ФУНКЦИОНАЛЬНЫЙ ГЛОБАЛЬНЫЙ ПО УМОЛЧАНИЮ 13 _Unwind_GetRegionStart

6036: 001e114c 28 FUNC ГЛОБАЛЬНОЕ ПО УМОЛЧАНИЮ 13 _Uwwind_GetLanguageSpecificData

* 1073БВ6038: 001e1170 8 FUNC GLOBAL DEFAULT 13 _Unwind_GetTextRelBase

Я проверил исходный код библиотеки, но не смог найти ссылки на эти символы.Я предполагаю, что при компиляции исходных файлов или ссылках в библиотеку они могли использовать какой-либо флаг для генерации этих символов.

Есть идеи, какой флаг clang ++ используется для генерации этих символов?И для чего нужны эти символы?

1 Ответ

0 голосов
/ 25 октября 2018

Я бы сказал, что это обработка исключений, если вы не используете исключение, вы можете скомпилировать с -fno-exceptions

см. https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/libgcc-sman.html

...