CLion在单独的系统终端中运行程序

CLion run program in separate system terminal

本文关键字:运行 程序 终端 系统 单独 CLion      更新时间:2023-10-16

我有一个ncurses程序,我想使用CLion进行交互调试。问题是,当我在CLion中运行程序进行调试时,运行该程序的内置控制台无法正确显示ncurses程序的输出。

我想让程序在我的系统终端中运行,这样我就可以在使用CLions调试器调试程序时正确地看到输出。

有办法做到这一点吗?

实现这一点的最佳方法是使用GDB,现在开始使用它可能会非常令人沮丧,所以我将向您展示我是如何在linux 中实现它的

  1. 打开终端,转到项目调试文件并键入gdbserver localhost:1234 ./myFile
  2. 打开clion到myFile项目,在右上角您应该会看到一个build-all(或您的项目名称),单击它并转到"编辑配置"
  3. 在左上角,您应该看到一个加号,单击它并按"GDB远程调试"
  4. 则在"目标远程"中键入tcp:127.0.0.1:1234
  5. 接下来,在"路径映射"中,按加号并在Remote和Location中键入/location/to/file/myFile(与1中的文件相同)
  6. 按OK,然后在右上角选择刚才进行的配置的名称,然后按debug

您可能需要再次尝试重新启动gdbserver才能正常工作,但如果您完成了上面的所有步骤,您应该会看到一个调试提示,并且在终端上您应该看到您的项目正在运行。

这有一些限制,例如,您必须在终端上运行gdbserver localhost:1234 ./myFile命令才能使其工作。

一些帮助我的视频/文档:

  • 33:35用GDB调试(JetBrain视频)
  • Jetbrain上的GDB文档

我希望这有帮助:)

在其他调试器中,您可以通过在终端中运行ncurses应用程序,并使用ncurses将调试器附加到进程来实现这一点。

这样做可以避免ncurses(它会更改终端I/O模式)和调试器的命令行之间的干扰。

attach功能是CLions调试器最近发布的功能:

进一步阅读:

  • 更强大的调试能力:连接到本地进程(2016年1月20日)
  • CLion 1.2路线图(2015年8月31日)
  • CLion调试(2015年5月8日)
  • CLion回答常见问题(2014年9月16日)
  • 用gdb调试ncurses应用程序
  • 使用GNU的GDB调试器:调试Ncurses程序