CLion教程-调试任意可执行文件

您可以使用CLion调试在其他地方使用任何构建系统构建的可执行文件。本文介绍了三种您可以根据您的应用程序选择的选项。无论您使用哪种方法,所有CLion的调试工具都将完全可用于您的代码。要求是您的二进制文件包含调试符号并且您有源文件。
选项1:附加到运行中的进程
最快的解决方案是将调试器附加到已经运行的进程。这适用于可以无限期运行的应用程序,如各种服务。
- 从主菜单中选择File | Open,打开源文件。
- 设置断点,确保在附加到进程后它们将会被命中。
- 启动进程。您可以在IDE之外执行此操作,或者使用内置终端(View | Tool Windows | Terminal 或 Alt+F12)。
- 在CLion中,从主菜单中调用Run | Attach to Process,或按Ctrl+Alt+F5。
- 在条目列表中,搜索您的进程:
- 调试器成功附加后,您将能够像平常一样进行调试。
- 完成后,调用Run | Stop,或者在调试工具窗口上单击
来分离进程。
选项2:调试虚拟CMake项目
另一种选择是创建一个基本的CMake项目,使用CMake Application配置来调试外部可执行文件。
- 在欢迎屏幕上单击New Project,或从主菜单中选择File | New Project。
- 选择任何C/C++模板,指定项目名称,然后单击Create。
- CLion将生成一个带有默认运行/调试配置的桩项目。您可以使用该配置,或者从CMake Application模板创建一个新的配置。
转到Run | Edit Configurations。在配置设置中,设置可执行文件的路径:
- 应用设置。
使用File | Open从主菜单中打开二进制文件的源代码。
您无需将源文件复制到项目文件夹中。
浏览源代码并设置断点。
- CLion将显示警告,说明文件不属于项目。由于您没有将CMake用作构建系统,因此可以安全地忽略这些警告。
准备就绪后,针对步骤4中设置的配置启动调试会话。
如果需要,您可以在项目的工具链设置中在可用的调试器之间切换。
选项3:调试自定义构建应用程序
作为更全面的替代方案,可以使用CLion的自定义构建目标 - 一种设置各种C/C++应用程序的构建和运行/调试的方式。您可以配置调试或构建、清理和调试的完整链。
创建用于调试的自定义配置
- 使用File | Open从主菜单中打开源文件。
- 浏览源代码并设置断点。
- 转到Run | Edit Configurations,单击
并从模板列表中选择Custom Build Application。
首先,即使不会执行实际构建,您也需要指定一个构建目标。这是必需的,因为构建目标定义了调试器所使用的工具链。
- 单击Configure custom build targets。在打开的对话框中,单击
添加一个新目标。指定目标的名称,并将其他字段保留为空:
如果您希望CLion为您执行构建/清理操作,请像下面所述的配置构建目标一样配置适当的构建目标。
- 保存目标并返回配置设置。
- 单击Configure custom build targets。在打开的对话框中,单击
在Target字段中选择已创建的构建目标。
- CLion将在Edit Configurations对话框底部显示警告。出于调试目的,可以忽略此警告。
- 在可执行文件字段中指定应用程序二进制文件。
- 保存配置并启动调试会话:
配置自定义构建目标(可选)
除了用于调试的自定义配置外,还可以为项目设置构建/清理工具。
我们以Meson构建系统为例。您可以按照类似的步骤为您的构建系统操作,或者只是在CLion中打开源代码,而不创建编译数据库。
- 转到Settings | Build, Execution, Deployment | Custom Build Targets,然后单击
添加一个新目标。
设置构建/清理工具。确保指定了适当的工作目录。
- 在我们的示例中,构建工具名为Meson_build,它在buildir目录中调用
meson compile
:
保存目标后,您可以开始使用Build Project / Rebuild Project操作。
- 在我们的示例中,构建工具名为Meson_build,它在buildir目录中调用
- 转到Run | Edit Configurations,然后在Target字段中选择新创建的自定义目标:
- 现在,如果调试此配置,您的项目将首先使用指定的工具构建。