Sen*_*nel 7 c++ windows eclipse-cdt
以下代码在运行时工作正常,但在使用 Eclipse 以调试模式运行时出现问题,它不等待输入,而是继续运行,并且一些看似随机的值被打印到控制台。它也不会停在断点处。
int main() {
int N, Q, maxSize;
cout <<"Enter a number"<<endl;
int test;
cin >> test;
cout << test <<endl;
}
Run Code Online (Sandbox Code Playgroud)
更新
从 CDT 9.4 (Eclipse Oxygen.2) 开始,启动配置中现在有一个复选框,可以一键完成。见https://wiki.eclipse.org/CDT/User/NewIn94#Debug
原答案
这里的问题是在同一个标准输入通道上有两个阅读器。当您执行cinEclipse CDT 时,还会尝试读取标准输入以进行 GDB-MI 通信。
幸运的是,有一个解决方法,您可以让 GDB 为正在运行的程序创建一个单独的控制台。这意味着不共享句柄。
为此.gdbinit,在项目的根目录中创建一个包含以下内容的文件:
set new-console on
Run Code Online (Sandbox Code Playgroud)
并在 Eclipse 中调试您的控制台应用程序,以满足您的需求:

更多信息
您可以在“调试器”选项卡中设置要用于调试配置的 gdbinit 文件。将GDB 命令文件设置为您创建的文件的名称。

您可以通过编辑C/C++ -> Debug -> GDB页面中的首选项来设置默认GDB 命令文件以用于新创建的调试配置:

Eclipse CDT 不使用主目录中的 .gdbinit。这是故意的,因为那里的 .gdbinit 通常是为 CLI 调试设置的,并且很容易干扰 Eclipse 与 GDB 正确通信所需的 MI 接口。
| 归档时间: |
|
| 查看次数: |
3105 次 |
| 最近记录: |