C++ CLion在独立系统终端中运行程序

C++ CLion在独立系统终端中运行程序,c++,debugging,terminal,ncurses,clion,C++,Debugging,Terminal,Ncurses,Clion,我有一个ncurses程序,我想使用CLion进行交互式调试。问题是,当我在CLion中运行程序进行调试时,运行程序的内置控制台无法正确显示ncurses程序的输出 我想让程序在我的系统终端上运行,这样我可以在使用CLions调试器调试程序时正确地看到输出 有什么方法可以做到这一点吗?在其他调试器中,您可以通过在终端中运行ncurses应用程序,并使用ncurses将调试器附加到进程来做到这一点 这样做可以避免ncurses(更改终端I/O模式)和调试器命令行之间的干扰 附加功能是CLions调

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

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


有什么方法可以做到这一点吗?

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

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

附加功能是CLions调试器最近发布的一项功能:

进一步阅读:

  • (2016年1月20日)
  • (2015年8月31日)
  • (2015年5月8日)
  • (2014年9月16日)

实现这一点的最佳方法是现在就使用GDB。开始使用GDB会让人非常沮丧,因此我将向您展示我是如何在linux中实现它的

  • 打开终端并转到项目调试文件,然后键入
    gdbserver localhost:1234./myFile
  • 打开clion to myFile project,在右上角,您会看到一个build all(或您的项目名称),单击它并转到“编辑配置”
  • 在左上角,您应该看到一个加号,单击它并按“GDB remote debug”
  • 然后在“目标远程”中键入
    tcp:127.0.0.1:1234
  • 接下来在“路径映射”中,按加号并在远程和位置中键入
    /location/to/file/myFile
    (与1中的文件相同)
  • 按OK,然后在右上角选择刚进行的配置的名称,然后按debug
  • 您可能需要再次尝试重新启动gdbserver,以使其正常工作,但是如果您执行了上述所有步骤,您应该会看到出现调试提示,并且在终端上您应该会看到您的项目正在运行

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

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


    我希望这会有所帮助:)

    在进程启动时,是否仍然可以将调试器附加到进程?我正在启动时让我的
    ncurses
    项目在xterm窗口中运行。我建议使用端口2159,这是GDB远程调试的官方端口。可能是@VictorSergienko的重复。该问题较新。@L.F.我相信其中一个问题有更好的答案。另一个问题的答案不允许调试,只是在一个单独的终端上运行。