我知道你可以在没有-g的情况下在Linux上构建应用程序,然后使用相同代码的二进制文件从应用程序调试核心文件,但使用-g构建(所有其他选项都相同)。如果nm输出相同,则符号匹配,您可以有效地分析核心文件。
然而,虽然我在Linux上成功地做到了这一点,但我还是无法让它在Solaris上运行。我用-xO4构建,所以-g可能不支持优化级别?我也试过-g0,但也没用。 nm文件差别很大。我也在用-xs构建。我应该在没有-xs的情况下构建吗?
在我尝试进一步分析之前,有没有人能够让它发挥作用?
要清楚,这是在事后建立和使用调试库的问题。如果使用-g和其他所有内容(-O3)构建,则可以使用Linux,但是我无法使用我们的Solaris构建(使用-xO4)。
这不是让系统库匹配的问题,因为我已经拥有了来自客户的系统库副本,并且它们匹配得很好。使用调试符号(-g0)构建时,我们的库不匹配。当我们不使用-g0时,我们的符号匹配正常但我们无法调试到源级别并获取本地和全局变量值。