rdynamic gcc选项的影响/缺点

Zeu*_*eus 10 c++ linker backtrace

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

我知道它会影响性能, 将-dynamic链接器选项添加到gcc/g ++会影响性能吗?

但它是否会影响性能......?

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

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

'rdynamic'有什么缺点..?

egu*_*gur 12

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

答:我已经在一个没有任何退化的大项目上使用过它.

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

答:不,它只是暴露了功能名称.

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

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

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

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