gpt4 book ai didi

c++ - GDB:运行没有符号的cpp进程调试

转载 作者:行者123 更新时间:2023-11-30 03:21:37 26 4
gpt4 key购买 nike

运行应用程序的 Linux 系统。此应用程序是一个没有任何调试符号的 cpp 二进制文件。这个应用程序如何使用 100% cpu。想调试它为什么无限运行。如果我停止并用调试符号替换二进制文件,则问题可能无法重现。

因此,在另一个环境中使用调试符号运行相同的应用程序。在这里它运行良好。

我可以比较它们(有和没有调试符号二进制文件)并推断出使用 GDB 的问题是什么吗?

最佳答案

This application is a cpp binary without any debug symbols

不需要任何调试符号来了解它在哪里花费时间,您只需要应用程序不被完全剥离(大多数二进制文件不是).

使用 perf record -p $pid 收集 CPU profile,然后使用 perf report 进行分析。

如果应用程序完全剥离,您仍然可以使用perf record 来收集程序计数器值,然后perf record --symfs ... 将其指向应用程序的未剥离拷贝。文档 here .

注意:剥离和未剥离的拷贝必须使用完全相同的构建标志构建,否则你会得到垃圾。最佳做法是始终将未剥离的拷贝保存为构建过程的一部分。

关于c++ - GDB:运行没有符号的cpp进程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52014300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com