我尝试在VSCode中调试一个C++文件。调试器在main()
函数中运行良好,但一旦它进入函数,调试器就会冻结,控制面板不再工作(停止按钮除外)。在左栏中,“Local”变量旁边显示了加载图标,该图标会永久加载。
我使用的是macOS 11.3.1,VSCode版本为:1.58.2(通用)。
以下是我的文件:debug.cpp
#include<iostream>
#include<queue>
#include<vector>
#include<map>
#include<stack>
#include<unordered_map>
#include<string>
using namespace std;
int longestConsecutive(vector<int>& nums) {
unordered_map<int, bool> hash;
for(int i = 0; i<nums.size(); i++){
hash[nums[i]] = true;
}
int max_range = 0;
for(int i = 1; i<nums.size()-1; i++){
if(hash[nums[i]]){
hash[nums[i]] = false;
int j = i-1;
int leftRange = 0;
while(hash[nums[j]] && j>=0){
hash[nums[j]] = false;
leftRange++;
j--;
}
int k = i+1;
int rightRange = 0;
while(hash[nums[k]] && k<nums.size()){
hash[nums[k]] = false;
rightRange++;
k++;
}
if(leftRange+rightRange+1 > max_range){
max_range = leftRange+rightRange+1;
}
}
}
return max_range;
}
int main(){
vector<int> vec;
vec.push_back(100);
vec.push_back(4);
vec.push_back(200);
vec.push_back(1);
vec.push_back(3);
vec.push_back(2);
int ans = longestConsecutive(vec);
cout<<ans<<endl;
}
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "clang++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "C/C++: clang++ build active file"
}
]
}
需要注意的是,当我在debug.cpp
中更改longestConsecutive
函数,并使其完全随机时,如:
int temp;
temp = 100;
return temp;
那么调试器工作正常。2我写的代码有什么问题吗?
提前感谢!
1条答案
按热度按时间eh57zj3b1#
我以前确实遇到过这种情况。只要在launch.json中将配置[类型]从“cppdbg”更改为“lldb”就可以解决这个问题。希望它对你有帮助。