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

14

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

我希望能够在系统终端中运行程序,以便在使用CLion的调试器调试程序时可以正确查看输出。

是否有任何方法可以实现这一点?


可能是如何在gnome终端中执行CLion程序?的重复问题。 - Victor Sergienko
@VictorSergienko 那个问题是较新的。 - L. F.
@L.F. 我相信有更好的答案。 - Victor Sergienko
在另一个问题的答案中,无法进行调试,只能在单独的终端中运行。 - Picard
2个回答

8
最好的方法是使用GDB进行调试,现在开始可能会很令人沮丧,所以我将向您展示如何在Linux中实现它。
  1. 打开终端并转到您的项目调试文件夹,然后键入命令gdbserver localhost:1234 ./myFile
  2. 打开CLion并进入myFile项目,在右上角应该看到一个"build all"(或者您的项目名称),单击它,然后进入"edit configurations"
  3. 在左上角应该会有一个加号,点击它并选择"GDB remote debug"
  4. 然后在"target remote"栏中输入tcp:127.0.0.1:1234
  5. 接下来,在"path mappings"中按加号并在Remote和Location中都输入/location/to/file/myFile(与第一步中相同的文件)
  6. 点击OK,在右上角选择刚刚创建的配置名称,然后点击debug
您可能需要尝试重新启动gdbserver才能使其正常工作,但如果您完成了以上所有步骤,则应该会看到一个调试提示,并在终端上看到您的项目正在运行。
这种方法有一些限制,例如,您必须始终在终端上运行gdbserver localhost:1234 ./myFile命令才能使其正常工作。
以下是一些帮助我的视频/文档: 希望这可以帮到您 :)

有没有办法在进程启动时附加调试器?我希望我的 ncurses 项目在启动时在 xterm 窗口中运行。 - ZeroPhase
我建议使用2159端口,这是GDB远程调试的官方端口。 - DBX12

3
在其他调试器中,您可以通过在终端中运行ncurses应用程序,并使用ncurses将调试器附加到进程来完成此操作。

这样做可以避免ncurses(它会更改终端I/O模式)和调试器命令行之间的干扰。 附加功能是CLion调试器最近发布的一个功能:
进一步阅读:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接