rdynamic gcc选项的影响/缺点

时间:2013-12-10 09:54:08

标签: c++ linker backtrace

我一直在Big C ++项目中工作,该项目的大小近300 MB,文件超过800个。我希望在二进制崩溃时获得调用堆栈,因此我捕获了Signal并将backtrace_symbols中的调用堆栈写入文件。但是要从backtrace_symbols获取符号名称,我已使用链接器标志'-rdynamic'进行编译。我想知道,使用'-rdynamic'会影响任何问题..?

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

但是呢 很大程度上影响了性能..?

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

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

'rdynamic'有什么缺点..?

1 个答案:

答案 0 :(得分:12)

问:但是它会影响性能吗??

答:我已经在更大的项目中使用它而不会出现任何退化。

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

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

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

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

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

答:rdynamic可以与dlopen()一起使用,以获得可执行文件的共享/全局符号表,这是我项目中必须的(dynamic_cast<>将跨SO边界工作)。缺点是SO之间的功能名称冲突。