【问题标题】:Impact/Disadvantages of rdynamic gcc optionrdynamic gcc 选项的影响/缺点
【发布时间】:2013-12-10 09:54:08
【问题描述】:

我一直在从事一个大型 C++ 项目,该项目有一个大小接近 300 MB 和 800 多个文件的巨大源。我想在二进制崩溃时获取调用堆栈,所以我捕获了信号并将调用堆栈从 backtrace_symbols 写入文件。但是为了从 backtrace_symbols 中获取符号名称,我使用链接器标志“-rdynamic”进行了编译。我想知道,使用“-rdynamic”会影响任何问题..?

我知道它会影响性能, Will adding the -rdynamic linker option to gcc/g++ impact performance?

但确实如此 显着影响性能..?

它是否公开了我的源代码..? [我知道不会,我只是想确定一下]

它是否会影响总运行时性能或启动时间..?

'rdynamic' 的缺点是什么?

【问题讨论】:

    标签: c++ linker backtrace


    【解决方案1】:

    问:但它是否会显着影响性能..?

    答:我在一个更大的项目中使用过它,没有任何降级。

    问:它是否暴露了我的源代码..?

    A:不,它只是暴露了函数名。

    问:它是否会影响总运行时性能或启动时间..?

    A:根据我的经验,不会。大多数功能已经导出。通常这会添加静态函数。

    问:'rdynamic' 有什么缺点..?

    答:rdynamic 可以与dlopen() 一起使用,为可执行文件提供一个共享/全局符号表,这在我的项目中是必须的(dynamic_cast 将跨 SO 边界工作)。缺点是 SO 之间的函数名冲突。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 2017-01-20
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      相关资源
      最近更新 更多