解决 Windows has triggered a breakpoint in Linkage.exe问题

2023-05-16

这两天在做一个小项目,里面有多线程的东东,在调试的时候 总是遇到 Windows has triggered a breakpoint in Linkage.exe 的错误。现在将这个问题和大家分享一下。

前提是这样的:

我要从数据库里面查找设备,然后找了一组设备之后,就要循环打开每一个的连接:

for (int i=0;i<records;i++)	//records代表记录集条数
			{
				CString strCameraID;
				strCameraID=CString(Anita::UTF8Tostring((char*)LResult.rows[i][0].c_str()).c_str());
				TDev* p = new TDev; //TDev 是我的设备结构体
				strcpy_s(p->id, Anita::UTF8Tostring((char*)LResult.rows[i][0].c_str()).c_str());
                                p->StartThread();
                        }


打开每一个连接的过程就是一个开启“线程”的过程,因为这个线程要负责 不停的重连设备,保证设备在线。。
bool StartThread()
	{
		m_bStart = true;
		m_pWorkerThread = AfxBeginThread(TDev::ProcessThreadProc, (void*)this,
			THREAD_PRIORITY_NORMAL);
		if(!m_pWorkerThread)
			return false;
		return true; 
	}
线程函数如下:

static UINT ProcessThreadProc(LPVOID pParam)
	{
		TDev* pThis = reinterpret_cast<TDev*>(pParam);
		::OleInitialize(NULL);
		while(pThis->m_bStart)
		{
			pThis->Work();					
			Sleep(30);
		}
		::CoUninitialize();
		TRACE("EXIT THREAD");	
		return 0xdead;
	}

按理说,这样是没有什么问题的,先查找设备集合,然后一个一个地开启线程打开设备连接。

可是在调试的时候,时不时地弹出一个错误:

注意不是每回都弹出这个问题,是时不时地弹出!

开始的时候我也一头雾水,还以为是别的什么库出了问题,找老大去说,他也随便说了说。于是我还得自己找不是.

后来我经过测试发现,一开始不弹出这个heap corruption 的情况下,系统运行的都好好的,所以问题很有可能就出在最开始了,是不是开启线程的时候就发生冲突了呢?

最后,我终于有了些发现,我那个线程函数那里找到了这句:

pThis->Work();					
		             Sleep(30);
这个 Sleep(30);很重要啊,它给了我灵感..

线程的开启需要申请地址等等,我的数据集合那边的那个循环是不等待的(理论上)啊,这样一来第一个还没开始运行,第二个又开始了,假如后面的线程来申请地址或开始work的时候,前面的正好也在处理内存,这样不就发生冲突了嘛?

于是我就在我的那个数据集循环那里也来一个Sleep(),果然,这个问题就再也没有弹出过。

至于此处应该Sleep()多久,我就写了30毫秒,最好预留一些时间给CPU处理吧,30毫秒我想奔三也应该够了吧。。

修改的代码:

for (int i=0;i<records;i++)	//records代表记录集条数
			{
				CString strCameraID;
				strCameraID=CString(Anita::UTF8Tostring((char*)LResult.rows[i][0].c_str()).c_str());
				TDev* p = new TDev; //TDev 是我的设备结构体
				strcpy_s(p->id, Anita::UTF8Tostring((char*)LResult.rows[i][0].c_str()).c_str());
				p->StartThread();
				Sleep(30);//开启线程需要时间, 30毫秒 给 CPU,奔三也应该够了吧?!
}

经过测试,我的问题解决了。至于文中的原理是不是完全正确,希望大家多提意见..




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决 Windows has triggered a breakpoint in Linkage.exe问题 的相关文章

  • Jekyll for GitHub Pages 在 Windows 上找不到 rouge

    我刚刚在 Windows 上安装了 Jekyll 我正在尝试使语法突出显示与 rouge 一起使用 我已经设定highlighter rouge在 config yml 上 在文件 posts 2015 08 13 my first pos
  • Windows 上的 Node.js 和 Express

    今晚 我决定尝试在我的 Windows 7 计算机上使用 Express 构建一个简单的 Node js 应用程序 安装过程还算顺利 但 Express 拒绝配合 以下是我已采取的步骤 使用以下位置提供的 MSI 安装 Node jshtt
  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • “此应用程序已请求运行时以异常方式终止它”的原因是什么?

    Visual C 运行时抛出一个常见错误 此应用程序已请求运行时以异常方式终止它 请联系应用程序的支持团队以获取更多信息 该错误消息实际上是什么意思mean 让我用一个比喻来准确地解释我的问题 如果我看到一条消息 异常 访问冲突 0xc00
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • MinGW Make 抛出“系统找不到指定的路径。”错误

    我正在尝试在 Windows 7 上使用 cmake 生成一个 c 项目 在实际创建项目之前 cmake 会对您的工具链进行快速测试 我正在使用 MinGW 这就是我的问题所在 Cmake 触发 make 构建 最终失败并返回 系统找不到指
  • 提取证书中主题属性的所有值

    我目前正在使用CertGetNameString http msdn microsoft com en us library windows desktop aa376086 28v vs 85 29 aspx提取每个主题属性的值 如下所示
  • 如何使用 PowerShell 扩展 ZIP 存档(UTF-8 文件名)

    我的 zip 存档有一个文件 P re No l txt 该 zip 可以通过 Windows 文件资源管理器 7 Zip 或我尝试过的任何其他工具很好地扩展 但我不知道如何从 PowerShell 中做到这一点 显然我已经尝试过展开 存档
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • 串行 I/O 与 Windows/Windows CE 重叠/不重叠

    抱歉 这不是一个大问题 但更多的是帮助那些在这些特定问题上遇到问题的人 我正在解决的问题需要使用串行 I O 但主要在 Windows CE 6 0 下运行 然而 最近有人问我该应用程序是否也可以在 Windows 下运行 所以我开始着手解
  • 如何设置任务在使用 vbs 登录时以当前用户身份运行而无需管理员权限?

    从命令行 我可以创建一个在登录时运行的计划任务 无需管理员权限或用户输入密码来设置任务 但是我必须使用 xml 文件来执行此操作 下面是一个示例 xml 其中 Domain User 部分必须在运行时替换为当前用户的域和名称
  • 导致崩溃转储的 Java 错误的解决方法

    我开发的一个程序偶尔会由于这个错误而导致 JVM 崩溃 http bugs java com bugdatabase view bug do bug id 8029516 http bugs java com bugdatabase vie
  • 无法加载 JNI 共享库 (JDK)

    当我尝试打开时Eclipse http www eclipse org 弹出对话框指出 无法加载 JNI 共享库 C JDK bin client jvm dll 此后 Eclipse 强制关闭 我想提出以下几点 我检查了这条路径上是否存在
  • 可以读取目标文件吗?

    我很好奇 obj文件 我几乎不知道它们是什么 或者它们包含什么 所以我用 Vim 文本编辑器打开它们 我在里面发现了一种类似外星人的语言 有什么办法可以理解它们代表什么以及它们的内容是什么 另外 它们的用途是什么 Thanks Sure 但
  • 如何使用 Win32 API 与 com 端口 (RS232) 通信

    我正在尝试使用 win32 API 与 com 端口对话 我找到了这个http www robbayer com files serial win pdf http www robbayer com files serial win pdf
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 在高 dpi Windows 平台上自动重新缩放应用程序?

    我正在编写一个需要在高 dpi Windows 192dpi 而不是 96dpi 上运行的 Qt 应用程序 不幸的是 Qt 框架尚不支持高 dpi 至少在 Windows 上 因此我的应用程序及其所有元素看起来只有应有尺寸的一半 有没有办法
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步

随机推荐

  • 使用HttpParser类解析网页

    之前发过一篇文章 xff1a 利用String类制作简单的网络爬虫 http blog csdn net gfd54gd5f46 article details 54729874 这是是基于String类里的substring 方法对字符串
  • 《信号与线性系统分析》学习心得

    信号与线性系统分析 学习心得 通过本学期上网课的学习 xff0c 大致对信号有了一定的了解认知 xff0c 下面对该课程的理解发表粗浅认知 xff0c 说起信号 xff0c 大家都不陌生 xff0c 比如老师写的幻灯片 xff0c 朋友的一
  • Codeforces Round 870 (Div. 2)【A、B、C、D】

    文章目录 A Trust Nobody 暴力 B Lunatic Never Content 数学 C Dreaming of Freedom 数学 暴力 D Running Miles 前缀 后缀 传送门 A Trust Nobody 暴
  • FileItem类

    文件上传时需要用到FileItem类 xff0c FileItem是一个接口 xff0c 它的实现类是DiskFileItem 如图为FileItem 接口中定义的方法 xff1a 1 getInputStream xff1a 以流的形式返
  • mysql数据表中文乱码解决办法

    在往 mysql 数据库中插入数据的时候出现数据 汉字 乱码情况 xff1a 在把数据库 xff0c 数据表的编码改为UTF 8后 xff0c 还是乱码 Mysql 的默认编码方式是 Latin1 xff0c 不支持中文 xff0c 因此
  • Spring xml配置文件头解析

    Spring文档中默认的XML文件格式 xff1a lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt beans xmlns 61 34 http www springfra
  • SpringMVC请求静态资源异常

    问题描述 xff1a 使用 REST 风格的资源URL时 xff0c SpringMVC请求静态资源 图片 js等 发生异常 优雅的 REST 风格的资源URL 不希望带 html 或 do 等后缀 若将 DispatcherServlet
  • web项目异常A web application registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister

    异常 xff1a A web application registered the JBDC driver com mysql jdbc Driver but failed to unregister it when the web app
  • Python(Web服务)全链路日志个跟踪

    1 背景 在我们的实际项目中 xff0c 尤其以Web服务为例 xff0c 经常遇到要做日志跟踪的场景 我们经常采用的方式是 xff0c 生成一个trace id 在全链路的调用中都输出这个id进行跟踪 这里需要处理的几个问题是 xff1a
  • @Controller和@RestController的区别?

    64 Controller和 64 RestController的区别 xff1f 官方文档 xff1a 64 RestController is a stereotype annotation that combines 64 Respo
  • get方式传值中文乱码

    如下情况 xff1a lt a id 61 span class hljs string 34 bookname 34 span title 61 span class hljs string 34 span class hljs vari
  • 记我的2016年实习总结

    实习问题记录及经验总结 工具篇 git 问题描述 xff1a 第一次merge分支到主干develop xff0c 遇到冲突时解决方法不当造成主干代码无法运行 原因 xff1a xff08 1 xff09 自己习惯问题 xff0c 写完代码
  • Maven搭建的SSM项目中遇到的问题

    Maven搭建的SSM项目中遇到的问题 1 EL表达式失效 2 装配异常Unable to configure ssm 解决办法 其实这两个问题的出现都是因为servlet版本和java版本不合适造成的 xff0c EL表达式在servle
  • Java小工具Lombok的安装与使用

    1 Lombok简介 Lombok是一个代码生成器 xff0c 可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具 xff0c 通过使用对应的注解 xff0c 可以在编译源码的时候生成对应的方法 使用 lom
  • 日常记录(1)

    数据库连接池Druid Alibaba github地址 xff1a https github com alibaba druidBlog xff1a http blog csdn net pk490525 article details
  • NOA上车「清一色」自主品牌,哪些供应商正在突围前线

    随着入门级L2进入普及周期 xff0c 以NOA xff08 高速 城区 xff09 为代表的L2 43 L2 43 43 赛道 xff0c 正在成为主机厂 硬件供应商 算法及软件方案商的下一波市场制高点的争夺阵地 高工智能汽车研究院监测数
  • 【STM32-初始化的时候是如何通过结构体给寄存器赋值的?】

    使用的是正点原子的源码 xff0c 一直没有搞明白初始化的时候是怎么给相关的寄存器赋值的 xff0c 今天琢磨了一下 xff1a 首先 xff0c 创建了一个GPIO InitTypeDef类型的结构体变量GPIO InitStructur
  • 多元建模基础(二):正态混合分布

    1 正态方差混合模型 xff1a 1 xff09 定义 xff1a 称 显然 xff0c xff0c 混合分布中 xff0c 由W的分布确定一组权值 xff0c 混合变量W可以被解释为来自新信息并影响所有风险因子波动性的扰动 位置向量和分散
  • 神经RRT*:基于学习的最优路径规划 翻译+总结

    摘要 xff1a 快速随机探索树 xff08 RRT xff09 及其变体由于能够快速有效地探索状态空间而非常流行 然而 xff0c 它们对初始解很敏感 xff0c 收敛到最优解的速度很慢 xff0c 这意味着它们需要消耗大量内存和时间来找
  • 解决 Windows has triggered a breakpoint in Linkage.exe问题

    这两天在做一个小项目 xff0c 里面有多线程的东东 xff0c 在调试的时候 总是遇到 Windows has triggered a breakpoint in Linkage exe 的错误 现在将这个问题和大家分享一下 前提是这样的