使用本机DOS命令行在Eclipse调试器中启动C ++程序被卡在91%

时间:2019-06-23 17:18:15

标签: c++ eclipse debugging

我一直在编写一个C ++程序,要求用户通过控制台输入一些输入。问题是,当我尝试在调试时输入输入时,我在控制台中键入的内容不会放入变量中。而是存储了一个不可思议的字符串,例如“ 48线程选择”(不带引号)。开头的数字大部分是随机的,但其余部分始终相同。 Google的快速搜索显示,这可能是由于Eclipse缓冲了其控制台输入。我遵循了本文中提到的解决方案: Eclipse debugging with input from console 尝试让Eclipse在调试时打开本机DOS控制台。但是,这没有用。现在该程序甚至无法启动。它仅停留在91%的提示中,在右下角说“ Launching program.exe(91%)”,旁边是一个加载栏。请告诉我如何使Eclipse使用本机DOS控制台启动调试器,或者最好是完全关闭控制台输入缓冲的方法。

我几乎可以肯定,奇怪的输入是由于Eclipse在调试时缓冲了控制台的输入。我不知道是什么原因导致程序无法启动,并在尝试以调试模式启动本机DOS控制台时卡在91%的位置。 我尝试将输入存储在next()和C样式字符串中,以查看是否会有所不同,但结果仍然相同。当std::string无法产生期望的结果,但也没有帮助时,我也尝试使用getcharstd::getline

std::cin

不尝试在本机DOS控制台中启动调试器时:
预期结果:

Enter a string: String
The input was: String

实际结果:

Enter a string: String
The input was: 69-thread-select

错误消息:
在调试器的变量视图下,成员变量//the following applies to when I DON'T try to start the debugger in a //native DOS console std::cout << "Enter string: "; std::string input; std::cin >> input;//<----------------------------------- std::cout << "The input was: " << input << std::endl;//| //when the instruction pointer is at this line, I type-- //my input into the console, press enter and then step over to the next line 的元素值应位于其中,它显示以下错误:

Multiple errors reported.

1) Failed to execute MI command:
-var-create - * &((()._M_local_buf))
Error message from debugger back end:
-var-create: unable to create variable object

2) Failed to execute MI command:
-data-evaluate-expression (()._M_local_buf)
Error message from debugger back end:
A syntax error in expression, near `)._M_local_buf)'.

3) Failed to execute MI command:
-var-create - * &((()._M_local_buf))
Error message from debugger back end:
-var-create: unable to create variable object

4) Unable to create variable object

当尝试在本机DOS命令行中启动调试器时:
没有错误报告。它只是说“ Launching program.exe(91%)”(带有加载栏),无论我等待多长时间,该程序都不会启动。今天我在办公桌前坐了40分钟,等待程序启动,但没有成功。

0 个答案:

没有答案