c++ - output objdump -t的输出中的 ".hidden"是什么意思?

标签 c++ c objdump

例子:

$ objdump Logger.cpp.o  -t

00000000 g     F .text  00000000 .hidden __sti___10_Logger_cpp_0b2ae32b

最佳答案

表示符号的可见性被隐藏:https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html

改变符号可见性的原因包括:

  • 符号冲突的风险较小。
  • 较小的二进制文件。
  • 减少了启动时间,因为动态链接器不需要处理那么多的符号。
  • 获得更高效代码的机会,因为编译器知道不能通过 LD_PRELOAD 类型的系统覆盖符号。
  • 防止第三方软件调用未记录的 API。

参见 http://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html获取更多信息。

关于c++ - output objdump -t的输出中的 ".hidden"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329734/

相关文章:

c - 如何使用 C 中命令行给出的参数?

我可以给 objdump 一个地址并让它反汇编包含函数吗?

c++ - 从 push_front 操作获取常规 MPL 列表

c++ - 如何使用boost最小化C++函数?

c - 随机排列数组(段错误)

c - 如何在 Linux 平台上的不同线程之间用 C 创建阻塞队列

c - C 二进制中的整数 : viewing it using readelf, objdump 或类似

c++ - 固定工具和 itrace

c++ - 在 QT 中以全屏模式播放视频

c++ - 如何从多重 map 中删除项目