分析 vscode 运行 node.js 闪退时的场景

场景:使用 cmakejs 运行 js 代码时,出现了闪退问题

分析:需要加载相关 pdb 文件,如何使用 vscode 调试 js 代码,可以参考: 使用 vscode 调试 nodejs 代码

从弹出上后,触发了 abort 导致运行中断,结合控制台给出的信息

复制代码
D:\a\_work\1\s\src\vctools\crt\github\stl\src\mutex.cpp(64): mutex destroyed while busy
Request timeout.
Request timeout.

我们猜测是否与锁有关

那么如何查看崩溃的堆栈信息呢,首先,通过 RUN AND DEBUGJS Debug BuildWindows Attach 依附到 native 的线程上

再点击弹出的重试按钮,因为弹窗也提示了重试后查看错误信息,最终发现了崩溃的代码行

问题代码:

复制代码
std::unique_lock<std::mutex> lock(ctx->lock_);
  while (!ctx->called_)
    ctx->cv_.wait(lock);
  delete ctx;

从这段代码可以看出,lock 还没被释放掉就调用 delete 了,从而出现了 mutex destroyed while busy

修改:

复制代码
{
    std::unique_lock<std::mutex> lock(ctx->lock_);
    while (!ctx->called_)
      ctx->cv_.wait(lock);
  }
  delete ctx;

小结:使用 vscode 调试底层代码不熟悉,导致花了不少时间来研究如何查看崩溃的堆栈信息,最终才找出问题所在

相关推荐
孟陬4 小时前
Node.js 测试报告格式一览和自定义 json 格式 `--test-reporter=spec | tap | dot | junit | lcov`
node.js
TunerT_TQ8 小时前
Valhalla 静态工程审阅 #009|Continue 源码证据驱动评测【大厂开源基础设施特辑】
vscode·测试工具·开源·llm·github·jetbrains·ai编程助手
时时三省10 小时前
VScode 智能插件安装
ide·vscode·编辑器
令狐前生12 小时前
Intellij IDEA 2025 破解安装
java·ide·intellij-idea
眞bilibili13 小时前
如何快速无缝的从 vscode 转向AI编辑器 cursor、kiro、trae 等
人工智能·vscode·编辑器
知彼解己14 小时前
Eclipse Temurin:企业级 Java JDK 发行版的最佳实践
java·ide·eclipse
独隅14 小时前
CLion 在 Linux 上的完整安装与配置使用指南
linux·运维·服务器·c语言·c++·ide
山河不见老14 小时前
【Cursor 、Qoder安装问题】Cursor 、Qoder安装卡在“正在准备安装”问题排查及解决
人工智能·windows·编辑器
jerryinwuhan14 小时前
VScode 安装opencode
ide·vscode·编辑器
223糖15 小时前
Idea,pycharm2026激活保姆级教程
java·ide·intellij-idea