2

我知道您可以在不使用 -g 的情况下在 Linux 上构建应用程序,然后使用来自相同代码但使用 -g 构建的二进制文件从应用程序中调试核心文件(所有其他选项都相同)。如果 nm 输出相同,则符号匹配,您可以有效地分析核心文件。

然而,虽然我在 Linux 上成功地做到了这一点,但我无法让它在 Solaris 上工作。我使用 -xO4 构建,所以也许 -g 不支持优化级别?我也试过 -g0 也没有用。nm 文件有很大的不同。我也在用-xs 构建。我应该在没有 -xs 的情况下构建吗?

在我尝试进一步分析之前,有没有人能够让它发挥作用?

需要明确的是,这是事后构建和使用调试库的问题。如果您使用 -g 和其他一切相同 (-O3) 构建 Linux,这是可能的,但我无法让它与使用 -xO4 的 Solaris 构建一起使用。

这不是让系统库匹配的问题,因为我已经从我们的客户那里获得了系统库的副本,并且它们匹配得很好。使用调试符号 (-g0) 构建时,我们的库不匹配。当我们不使用 -g0 时,我们的符号匹配得很好,但我们无法调试到源代码级别并获取本地和全局变量值。

4

0 回答 0