Windows C++ 排查死锁

news2025/4/12 2:41:36

开发出来应用程序突然间卡死不动,如果其中是因为死锁问题卡列该如何排查
下面是一个简单的死锁例子

#include <iostream>
#include <thread>
#include <mutex>

std::mutex a, b;

void function_a() {
	std::lock_guard<std::mutex> _x(a);
	std::this_thread::sleep_for(std::chrono::milliseconds(500));
	std::lock_guard<std::mutex> _y(b);
}

void function_b() {
	std::lock_guard<std::mutex> _y(b);
	std::lock_guard<std::mutex> _x(a);
}


int main() {
	std::thread t1(function_a);
	std::thread t2(function_b);

	t1.join();
	t2.join();
	return 0;
}

以Debug模式编译运行后,毫无意外的没反应了。
现在打开任务管理器,找到进程
在这里插入图片描述
CPU利用率0,显然不太会有死循环,右键"转到详细信息",然后"分析等待链"。
在这里插入图片描述
在这里插入图片描述

线程18208 在等待11188结束,线程11188 卡住了。
现在可以打开WinDbg,Attach 到目录进程,在这之前要设置好符号目录,这些步骤就跳过。

现在直接!threads查看有哪些线程
在这里插入图片描述
计算下11188 是哪一条
在这里插入图片描述
切换到2bb4
在这里插入图片描述
看看调用堆栈
在这里插入图片描述
找到问题源码
在这里插入图片描述
现在可以分析代码了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2327183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ctfshow

1&#xff0c;web517 通过输入两个单引号让查询语句正常&#xff0c;判断是什么注入&#xff0c;使用的是什么字符 然后我们通过order by 判断回显位&#xff0c;进行一个联合查询注入 获取数据库名 ctfshow的sqli-labs和本地搭建最大的不同&#xff0c;就是show的flag不在当前…

【AI论文】什么、如何、何处以及效果如何?大语言模型测试时缩放技术调研

摘要&#xff1a;随着预训练时代对计算&#xff08;数据和参数&#xff09;缩放的热情逐渐减退&#xff0c;测试时缩放&#xff08;Test-Time Scaling, TTS&#xff09;&#xff0c;也被称作“测试时计算”&#xff0c;已成为一个备受瞩目的研究焦点。近期研究表明&#xff0c;…

大模型学习一:deepseek api 调用实战以及参数介绍

一、说明 DeepSeek&#xff08;杭州深度求索人工智能基础技术研究有限公司&#xff09;是一家专注于大语言模型&#xff08;LLM&#xff09;研发的中国创新型科技公司&#xff0c;成立于2023年7月17日&#xff0c;由幻方量化孵化。其核心产品包括开源推理模型DeepSeek-R1、多模…

MYSQL实现获取某个经纬度区域内的数据

1.创建表 2.插入表数据 INSERT INTO tf_sys.tf_location(name, longitude, latitude, location) VALUES (资料名称1, 114.437625, 16.016914, ST_GeomFromText(POINT(114.437625 16.016914))); INSERT INTO tf_sys.tf_location(name, longitude, latitude, location) VALUES (…

《Python实战进阶》No39:模型部署——TensorFlow Serving 与 ONNX

第39集&#xff1a;模型部署——TensorFlow Serving 与 ONNX 摘要 在机器学习项目中&#xff0c;训练好的模型需要被部署到生产环境中才能发挥实际价值。本集聚焦于如何将模型高效地部署到生产环境&#xff0c;涵盖TensorFlow Serving和ONNX两种主流工具的使用方法。我们将从理…

YOLOv11区域检测

TrackZone 使用Ultralytics YOLO11 -Ultralytics YOLO 文档 如何通过Ultralytics YOLO11 在Python 中使用 TrackZone&#xff1f; 只需几行代码&#xff0c;您就可以在特定区域设置对象跟踪&#xff0c;从而轻松将其集成到您的项目中。 import cv2from ultralytics import s…

手工win提权土豆家族一键梭哈

手工提权 就是在没有工具使用的时候进行提权&#xff08;或者是win版本过新导致的exp作者没更新等&#xff09; 优点就是 随选随用 缺点就是非常繁琐&#xff08;建议是先土豆梭哈然后再手工提权&#xff09; 先进行信息收集&#xff08;这边靶机以例子&#xff09; 这个…

在Qt中直接在构建目录下直接运行.exe文件报错问题分析

在Qt中直接在构建目录下直接运行.exe文件报错问题分析 在学习Qt的过程中遇到过一个问题&#xff0c;直接在Qt构建目录下运行生成的.exe文件时会报错。这和MFC有一定的差别&#xff0c;如果MFC是可以直接运行的。 这是怎么回事呢&#xff1f; 在 Qt 中直接运行构建目录下的 .…

头戴式面捕头盔:高精度捕捉真人面部表情,赋能元宇宙多场景应用

随着元宇宙虚拟人与现实场景的不断交融&#xff0c;如何赋予虚拟人更加自然&#xff0c;灵动的表情成为了业内人员共同讨论的话题&#xff0c;尤其是在虚拟人直播&#xff0c;影视动画制作方面。在虚拟人直播间&#xff0c;丰富的面部表情可以赋予虚拟人更加生动的情感表达&…

LLM大模型教程——什么是AI大模型

引言 当GPT-4展现出惊人的上下文理解能力,当Stable Diffusion创造出媲美人类画师的图像作品,当AlphaFold2破解蛋白质折叠密码——这些里程碑事件标志着人工智能发展进入大模型主导的新纪元。本综述将深入解析这一技术革命的核心载体——AI大模型。 一、AI 大模型是什么​ 概…

机器学习(八):K-Means聚类原理与实战

声明&#xff1a;未经允许禁止转载与抄袭。 前言 k k k均值&#xff08; k k k-means&#xff09;聚类算法是一种经典的无监督聚类算法&#xff0c;本文将深入解析其理论原理&#xff0c;并在真是数据集上进行算法实践&#xff0c;话不多说&#xff0c;请看下文。 算法原理 …

【stm32--HAL库DMA+USART+空闲中断不定长收发数据】

串口通信-Hal库实现不定长度收发&#xff0c;DMAUSART DMA串口STM32CUBEMX配置&#xff08;工程创建&#xff09;基础配置时钟配置工程配置 代码编写现象 DMA 在正式配置之前&#xff0c;我们先来一起简单了解一下DMA。DMA&#xff08;Direct Memory Access&#xff0c;直接内…

【SPP】蓝牙串口配置中LM互操作性要求深度解析

在蓝牙协议栈中&#xff0c;链路管理器&#xff08;Link Manager, LM&#xff09;承担着链路建立、安全管理、功耗控制等核心功能。对于串行端口配置文件&#xff08;SPP&#xff09;而言&#xff0c;LM 的互操作性直接影响连接稳定性、数据安全性和设备功耗。本文基于蓝牙核心…

Java迭代器【设计模式之迭代器模式】

目录 一.前言 二.正文 1.我写的类为什么不能使用增强for(迭代器遍历) 2.代码健全性——迭代器常见的两个Exception 1.NoSuchElementException 2.ConcurrentModificationException 三.后言 一.前言 本篇面向对象主要为和我一样的小白&#xff0c;主要是对迭代器模式的浅…

Eclipse IDE

创建新的Java项目和类 在 Eclipse IDE 中创建一个新的 Java 项目和 Java 类的步骤如下&#xff1a; 1. 创建新的 Java 项目 打开 Eclipse IDE。在菜单栏中&#xff0c;点击 File > New > Java Project。在弹出的对话框中&#xff0c;输入项目名称&#xff08;例如&…

计算机视觉算法实战——基于YOLOv8的自动驾驶障碍物实时感知系统

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 引言&#xff1a;自动驾驶感知系统的关键挑战 自动驾驶技术正以前所未有的速度重塑交通出行方式&#xff…

【boost搜索引擎】下

boost搜索引擎 1. 编写搜索引擎模块 Searcher2. 编写 http_server 模块3. 编写前端模块4. 添加日志5. 补充 去掉暂停词6. 项目扩展方向 1. 编写搜索引擎模块 Searcher 这一模块主要提供建立索引&#xff0c;以及收到用户的发起的http请求通过Get方法提交的搜索关键字&#xff…

数据结构优化DP总结

单调栈&#xff1a;Codeforces Round 622 (Div. 2) C2. Skyscrapers (hard version) 简单来讲就是最后需要呈现出一个单峰数组&#xff0c;使得总高度最高。 最开始想到暴力枚举每一个元素都充当最高的“单峰”&#xff0c;但是这里的 n 过大&#xff0c;这样枚举肯定会TLE。 …

[Linux系统编程]进程间通信—system V

进程间通信—system V 1. System V 共享内存(Shared Memory)1.1 共享内存的建立过程1.2 共享内存函数2. System V 消息队列(Message Queues)3. System V 信号量(Semaphores)4. 总结前言: 之前所提的管道通信是基于文件的,OS没有做过多的设计工作。 system V 进程间通信…

第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(部分题解)

文章目录 前言日期统计题意&#xff1a; 冶炼金属题意&#xff1a; 岛屿个数题意&#xff1a; 子串简写题意&#xff1a; 整数删除题意&#xff1a; 总结 前言 一年一度的&#x1f3c0;杯马上就要开始了&#xff0c;为了取得更好的成绩&#xff0c;好名字写了下前年2023年蓝桥…