debug意味着发现并解决使程序无法完成其任务或无法可靠运行的问题。这可能涉及单步执行代码,也可能涉及调查性任务,例如读取内存和cpu统计信息,以确定哪个线程挂起或了解程序崩溃的状况。
这个更广泛的定义意味着可以使用除常规调试器以外的其他工具来进行调试。除了使用GNU调试器(GDB)之外,您还可以检查由System Profiler报告的数据,使用多个内存和堆监视工具检查运行时错误,并在系统信息中查看线程状态。
我们首先说明IDE支持的调试用例以及如何在每种情况下选择最佳工具。然后,我们描述涉及在各种情况下使用GDB逐步执行程序代码的工作流。后面的章节中提供了有关使用其他运行时分析工具作为调试一部分的信息。
- 选择用于调试
的工具 IDE与多个第三方工具一起使用,并且包含自己的功能,可帮助您调试不正确的程序结果,进程挂起或进程崩溃。 - 启动连接了调试器的应用程序 (个人理解代码源码)
您可以启动连接了调试器的应用程序,以逐步浏览其整个代码路径。 - 将调试器附加到正在运行的进程 (gdb xxx)
您可以将调试器附加到在目标计算机上运行的进程。 - 调试核心文件 (记录崩溃地方)
如果您在运行模式下运行应用程序(未连接调试器),并且远程进程崩溃,则 IDE可以选择将生成的核心文件下载到主机并调试该文件。这是首选的事后调试方法,因为它方便且使您可以立即开始调试崩溃的进程。 - 调试子进程 (附件??)
默认情况下,当一个进程创建另一个进程时,GDB不会跟随该子进程的执行。您必须将调试器的另一个实例附加到该新进程。此操作使您可以同时调试父级和子级。 - 调试库
IDE支持调试静态库或共享库。您可以在链接到应用程序的任何库中的函数内外跟踪程序执行。 - 通过串行连接进行调试
GDB通过串行连接进行工作,因此,当该设备上没有网络链接或调试网络时,可以在目标上调试程序。 - 调试非IDE代码
您可以调试在IDE外部编写和编译的代码。您所需要做的只是一个启动配置,无需创建IDE项目来存储代码。