rdynamic gcc选项的影响/缺点

13

我一直在从事一个大型的C++项目,它有近300 MB大小且超过800个文件。当二进制文件崩溃时,我想获得调用堆栈,并捕获了信号并将调用堆栈从backtrace_symbols写入文件中。但要从backtrace_symbols获取符号名称,我必须使用链接器标志'-rdynamic'进行编译。我想知道,使用'-rdynamic'会影响任何问题吗..?

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

但它是否 显著影响性能..?

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

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

'rdynamic'的缺点是什么..?

1个回答

15

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

答:我在一个较大的项目中使用它,并没有任何退化。

问:它会暴露我的源代码吗..?

答:不,它只会暴露函数名。

问:它会影响总运行时间或启动时间吗..?

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接