【问题标题】:CLion run program in separate system terminalCLion 在单独的系统终端中运行程序
【发布时间】:2016-03-29 10:04:13
【问题描述】:

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

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

有什么办法吗?

【问题讨论】:

标签: c++ debugging terminal ncurses clion


【解决方案1】:

最好的方法是使用 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 命令才能使其工作。

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

我希望这会有所帮助:)

【讨论】:

  • 有没有办法在调试器启动时将其附加到进程?我在启动时让我的 ncurses 项目在 xterm 窗口中运行。
  • 我推荐使用2159端口,这是GDB远程调试的官方端口。
【解决方案2】:

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

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

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

进一步阅读:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-12
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多