我正在使用VSCode调试MacOSX中的CPP程序。
我有两个节目。
程序1
int main(){
string a;
a = "a";
a += 'b';
cout<<a<<endl;
return 0;
}
方案2
int main(){
string a;
cin>>a;
a += 'b'
cout<<a;
return 0;
}
在program1中,我直接分配string a
,当我调试VSCode
中的程序时,首先在终端中编译它,使用:g++ -g filename.cpp
然后选择Debugging菜单中的Starting Debugging选项。我可以通过向前移动断点来查看string a
变量的状态。
VARIABLES部分显示不同变量的状态,CALL STACK显示堆栈帧。
但是,对于program2,当我越过cin>>a;
的断点时,VARIABLES和CALL STACK的内容被清除。
以下是launch.json
文件的内容:
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb"
}
]
}
我如何获得用户输入并继续调试我的代码?
8条答案
按热度按时间cygmwpex1#
如Here中所述
如果你在launch.json中启用了**"externalConsole":true**,那么你将得到一个弹出的控制台窗口,你可以在其中键入内容。
kuuvgm7e2#
要使用输入进行调试,可以编辑arg部分,如下所示:
上面的示例应与以下内容相同:第一个月
e4eetjau3#
我希望这对任何来这里的人都有帮助:
通过(1)将“externalConsole”设置为
true
和(2)在Code-Runner Extension配置中选中(启用)“Run In Terminal”,您可以通过在外部控制台上键入输入来将输入插入到您的代码中,当您运行代码时,外部控制台会弹出。dw1jzc5e4#
简单地说:
step1.点击调试器窗口的小齿轮图标。
步骤2.使此[“外部控制台”:false,]在launch.json文件中。
step3.然后重新启动调试器。
bpzcxfmw5#
1.安装延伸件CodeLLDB
1.添加新配置
CodeLLDB: Launch
1.将
program
属性设置为"program": "${workspaceFolder}/${fileBasenameNoExtension}"
1.(可选)重建代码
1.在VS调试选项卡中选择创建的
Launch
配置。然后启动它!利润!
oewdyzsn6#
我也遇到了同样的问题,我的解决方案是用mingw64替换cygwin的gdb和g ++。
jdzmm42g7#
在我的情况下,这是一个两步的过程。
1.启用外部控制台:如其他答复所述,确实如此。
1.让VS代码控制终端。
3bygqnnd8#
如果您正在调试的代码需要用户输入,请将外部控制台设置为true。输入输入后,避免单击“x”关闭外部控制台。相反,单击“-”以最小化窗口。然后继续按f10或f11继续调试。我希望这对您有所帮助。