【发布时间】:2018-08-25 05:25:07
【问题描述】:
运行应用程序的 Linux 系统。此应用程序是一个没有任何调试符号的 cpp 二进制文件。一些如何使用 100% cpu 的应用程序。想调试它为什么无限运行。如果我停止并用调试符号替换二进制文件,问题可能无法重现。
因此,在另一个环境中运行带有调试符号的相同应用程序。这里运行良好。
我可以比较它们(有和没有调试符号二进制文件)并推断使用 GDB 的问题吗?
【问题讨论】:
-
分析器可能会帮助您缩小问题站点的范围。您可能不会获得函数名称,但您应该获得一个地址,如果您将链接器配置为提供一个内存映射,您可以使用内存映射返回问题函数。
-
太棒了。你能用一些例子解释更多细节吗?
-
调试符号不需要内置到正在运行的二进制文件中进行调试,您只需将带有调试符号的二进制文件加载到gcc中
-
@AlanBirtles,您能提供更多详细信息吗?