Jos*_*Jos 5 c++ visual-studio-code
我正在使用VSCode在MacOSX 中调试我的CPP程序。
我有2个程序。
程序1
int main(){
string a;
a = "a";
a += 'b';
cout<<a<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
程序2
int main(){
string a;
cin>>a;
a += 'b'
cout<<a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在program1 中,我直接分配string a
和 当我调试程序时VSCode
,首先使用以下命令在终端中编译它:
g++ -g filename.cpp
然后在调试菜单中选择开始调试选项。我可以通过在断点中向前移动来查看变量的状态。string a
的变量部分显示不同的变量的状态和CALL堆栈显示堆栈帧。
但是,对于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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如何获取用户输入并继续调试我的代码?
小智 9
要使用输入进行调试,您可以编辑 arg 部分,如下所示:
"program": "${workspaceFolder}/main",
"args": ["<", "input_file.in"]
Run Code Online (Sandbox Code Playgroud)
上面的例子应该是一样的: ./main < input_file.in