debugging VSCode调试工具冻结

d6kp6zgx  于 2022-11-14  发布在  Vscode
关注(0)|答案(1)|浏览(306)

我尝试在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我写的代码有什么问题吗?
提前感谢!

eh57zj3b

eh57zj3b1#

我以前确实遇到过这种情况。只要在launch.json中将配置[类型]从“cppdbg”更改为“lldb”就可以解决这个问题。希望它对你有帮助。

相关问题