由于dll导致的奇异CRASH

AURA-Mem:面向具身智能的常驻显存管理架构 显存管理是具身智能体在边缘设备稳定运行的核心瓶颈,传统策略将显存视为被动缓存区,导致内存生命周期失控、频繁OOM与带宽争抢。AURA-Mem 从计算资源视角重构显存角色,提出‘常驻(persistent)’与‘动作感知(action-aware)’双范式,通过物理层显存锚定、逻辑层动作门控和语义层策略契约实现三级受控生命周期管理。其核心不在于扩容,而在于提升每GB显存的决策价值密度——实测在RTX 4060 Ti与Jetson Orin上显存峰值降低超42%,端到端延迟下降16%,同时保障梯度可追溯与多模态 阅读详情

之所以讲是奇异的crash,是因为我开发这么长时间还是第一次遇到这样类型的crash,开始的时候怀疑是由于在DLL中分配的内存在其它的dll中释放导致的,或者由于DLL已经卸载导致分配的内存不可用导致的,然后,经过实验,居然不是,这下可让我没了头脑。

经过仔细分析发现,是因为在dll中分配了一个对象指针,该对象的内存区域还是可用的,但是dll已经卸载,导致该对象的代码区域已经卸载,从而无法正确的访问析构函数导致的访问错误。

参考了 MSDN的技术文章http://www.microsoft.com/china/MSDN/library/netFramework/netframework/0501ExceptLog.mspx?mfr=true重要得以解决。找到了问题的原因,解决起来就容易了,加上try/catch丢弃掉那部分已经不存在代码了的内存。

解决的代码如下:

 RctEventInfo oEvent;
 RctEventInfo& tEvent = m_vEvents.front();
 try
 {
  oEvent = tEvent;
 }
 catch (...)
 {
  IRctEventParam** pParam = &oEvent.RctParamPtr;
  (*pParam) = NULL;
  pParam = &tEvent.RctParamPtr;
  (*pParam) = NULL;
  m_vEvents.pop_front();
  m_oLock.UnLock();
  return TRUE;
 }

注:我使用了智能指针,智能指针指向的对象代码已经不复存在导致的这个问题, 当然,我这里采用的 IRctEventParam** pParam = &oEvent.RctParamPtr;
  (*pParam) = NULL;
赋值方法将导致内存泄露……

=========================================
欢迎访问装修DIY必备--有房网
=========================================

创建你自己的PDB符号服务器create your pdb symbol server 使用Windbg或者VS2008根据dump文件(如何创建c++ Minidump)来调试程序的话,需要PDB文件。但是,每天都在build,就有很多版本的PDB,文件,怎么进行管理呢?微软的系统DLL的符号服务器,我想大家都用过,这个很好!如何搭建自己的符号服务器呢?首先下载 Debugging Tools for Windows 里面有一个symstore.exe;用法如下:  阅读详情

相关推荐

TC8测试TCP-UNACCEPTABLE-04/006

TC8测试TCP-UNACCEPTABLE-04/006

调用第三方DLL闪退(crash)的原因和解决方法

某项目要调用一个第三方的 Windows 动态库(DLL),这个 DLL 除了一份简单的 API 文档,没有任何参考代码。用 VC++ 写了测试程序,通过 LoadLibrary、GetProcAddress 得到 DLL 中的 API 函数地址进行调用,一开始是按 Release 配置编译,结果调用该 DLL 中的函数可以得到正确结果,但之后总是闪退(也就是 crash),不报任何错。由于没有该 DLL 的源码,无法定位 crash 原因,无法确定是否由于调用参数不正确还是由于该 DLL 本身的 bug

zhuangwf的专栏 7355

手把手教你用Python+GDAL处理0.5米吉林一号卫星影像(附代码)

本文详细介绍了如何使用Python和GDAL处理吉林一号0.5米高分辨率卫星影像,包括环境配置、数据预处理、分辨率融合、植被指数计算及地物分类等关键步骤。通过实战代码示例,帮助开发者高效处理大尺寸遥感数据,解决资源崩溃和算法选择问题,提升遥感影像分析能力。

weixin_30892037的博客 126

CrashRpt.dll用来在应用程序出现异常crash

CrashRpt.dll用来在应用程序出现异常crash时,捕获到错误,并收集出错信息:MiniDump文件、硬件信息、系统信息、出错信息、进程信息、服务信息、驱动信息、启动信息、软件列表、端口信息、磁盘分区、WinSock LSP、IE插件、网卡信息。 使用方法 主程序入口调用InitializeCrashRpt,可以参考sdk中simpledemo。 用法1:最简单方式 int

木心[ mx1024 ] 欢迎 6517

【深度学习】通俗易懂讲解循环神经网络LSTM

目录 1、循环神经网络(Recurrent Neural Networks) 2、长依赖存在的问题 3、LSTM 网络 4、LSTMs的核心思想 5、一步一步理解LSTM 6、LSTM的变种 7、总结 1、循环神经网络(Recurrent Neural Networks) 人对一个问题的思考不会完全从头开始。比如你在阅读本片文章的时,你会根据之前理解过的信息来理解下面看到的文字。...

Nieson2012的专栏 2728

最新版电子发票样式html+css--普通发票+增值发票

【代码】最新版电子发票样式html+css--普通发票+增值发票。

weixin_44110923的博客 3673

计算机中丢失crashrpt,修复crashrpt.dll

crashrpt.dll是电脑系统必备的一个DLL组件修复程序。系统重要文件crashrpt.dll 。crashrpt.dll(含64位)在电脑中起着重要作用。比如电脑中的部分软件的正常运行就离不开它,如果缺少这款dll,会给用户带来不少麻烦。一旦发现自己的电脑这款crashrpt.dll出问题了,就来下载我们准备的crashrpt.dll文件吧!感兴趣的用户赶紧来久友下载站下载体验吧!使用说...

weixin_42504048的博客 3587

蓝牙抓包实战:用nrf52840和Wireshark解析广播包与SCAN_RSP的完整流程

本文提供了一份完整的蓝牙抓包实战指南,详细介绍了如何使用nRF52840 Dongle和Wireshark捕获并解析蓝牙广播包与SCAN_RSP。内容涵盖环境搭建、广播事件分析、数据包结构拆解以及常见连接问题的调试技巧,旨在帮助开发者和物联网工程师深入理解BLE底层通信,提升硬件调试能力。

weixin_29279153的博客 494

一些Windows API导致的Crash以及使用问题总结

Windows API就没有问题、没有BUG吗?答案是否定的!代码都是写出来,怎么可能完全没有问题呢?下面我们就来看看目前发现有哪些Windows API是有问题的,或者说使用上面有误区的。

magictong的专栏 6379

炼丹-Pyecharts: JupyterLab无法render_notebook

炼丹-Pyecharts: JupyterLab无法render_notebook问题描述Jupyter-Lab 环境下render_notebook显示空白 问题描述Jupyter-Lab 环境下render_notebook显示空白 首先需要使用pyecharts自带的config来申明一下使用pyecharts的运行环境 from pyecharts.globals import Curre...

MichaelZzzzz的博客 4687

组建高效AI开发团队:角色、技能与协作

在当今科技飞速发展的时代,人工智能(AI)已经成为各个领域的核心驱动力。组建高效的AI开发团队对于企业和科研机构来说至关重要,它能够推动创新、提高竞争力、实现业务目标。本文的目的在于为那些希望组建或优化AI开发团队的管理者、技术负责人以及相关从业者提供全面的指导。范围涵盖了团队角色的定义、所需技能的分析、团队协作的策略,以及实际项目中的应用和相关资源的推荐。本文将首先介绍AI开发团队的核心概念与联系,包括团队角色、技能和协作之间的关系。接着阐述核心算法原理和具体操作步骤,结合数学模型和公式进行详细讲解。

2502_91592937的博客 995

VC ListCtrl中嵌入进度条

VC中在listctrl中嵌入进度条,截图如下:其实要实现这个非常容易,以下是自绘ListCtrl的代码,首先继承CListCtrl,然后增加函数:void CProcessList::OnCustomDraw(NMHDR *pNMHDR, LRESULT *pResult){ //draw each item.set txt color,bkcolor.... NMLVCUSTOMDRAW* p

2874

华为OD机试 - 进制转换 - 二进制(Python/JS/C/C++ 2024 B卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 915

VC Tray Icon的使用

为CMainFrame增加如下的成员变量: NOTIFYICONDATA m_trayIcon; CMenu m_menuTray;在CMainFrame的OnCreate函数末尾增加: m_trayIcon.cbSize = sizeof(NOTIFYICONDATA); m_trayIcon.hIcon = (HICON)LoadImage(AfxGetApp()->m_hInstance, 

2772

手把手教你学Simulink--基础电机控制场景实例:基于Simulink的无刷直流电机六步换相仿真

摘要:本文详细介绍了基于Simulink的无刷直流电机(BLDC)六步换相仿真方法。文章首先阐述了BLDC六步换相控制的原理,包括霍尔传感器定位、六步换相逻辑和方波电流驱动三大支柱。然后通过电动工具(角磨机)应用场景,展示了如何在Simulink中搭建完整的六步换相系统:从主电路构建、霍尔信号生成、Stateflow换相逻辑实现到开环电压控制。仿真结果显示该系统具有低成本优势(仅需霍尔传感器),但存在±20%转矩脉动。文章还提供了核心代码实现,包括霍尔信号生成、六步换相状态机和转矩分析脚本,并对比了六步换相

MHD0815的博客 147

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用CFileDialog GetOpenFileName选择文件夹

比较简单也比较传统的方式是使用SHBrowseForFolder,不过说实话这个大概是微软最差的一个控件了,用过的人都知道!完全没有GetOpenFileName那么好用的界面,但是GetOpenFileName不支持文件夹的选择,只能选择文件!本文提供了一个比较好的解决方法:1、自Vista之后的操作系统,提供了IFileDialog接口,事实上GetOpenFileName缺省也使用这

2527

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC创建快捷方式

CreateShortCut(LPCSTR lpszPathLink, LPCSTR lpszPathObj, LPCSTR lpszDesc){    HRESULT hres;     IShellLink* psl;      // Get a pointer to the IShellLink interface.     hres = CoCreateInstance(CLSID_She

2364

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

解决VS2008不能加载WPF设计器的问题

无法将属性“Source”的字符串“pack://application:,,,/Microsoft.Windows.Design.Developer;component/Images/Fit_To_Window.png”转换为“System.Windows.Media.ImageSource”类型的对象。 位图颜色上下文无效。  标记文件“Microsoft.Windows.Design.Dev

1791

VC实现类似Acrobat竖排TabCtrl

像UltraEdit那样横着排的TabCtrl看到挺多的,应用也很广泛,可是有的时候界面排布需要竖着的TABCTRL,像Acrobat,MSN,QQ等,我最近因为应用需要所以作了一个竖排的TabCtrl,具有和UltraEdit那样横排Ctrl的类似功能,可以动态增加删除Button;选择消息,双击关闭,右键消息等;当前还缺ToolTip的支持;也不支持横排(在设计的时候是希望都能支持的,不过时间

1371

ATL COM控件开发中在RGS文件里面使用变量

最近在做一个Visual Studio的Add-in Toolbar,目的是进行简单的代码静态检查和部分测试自动化代码的生成。在控件注册的时候,ATL控件会使用资源文件里面的一个RGS文件(也就是注册表导入文件进行注册)。我发现在里面有使用%MODULE%这样的变量,这个会在执行DllRegisterServer的时候被解释成DLL的路径。下面是一个实例:HKCU{ NoRemove

1209

C++ Release版崩溃事后调试

我们看到微软从IE6开始当程序崩溃(Crash)的时候弹出一个对话框询问是否发送给微软。对于大规模部署的客户端会碰到各种各样的疑难杂症很难预料,而且解决更加困难,如果你做的程序客户量非常大,建议采纳这个非常cool的设计。在自己的程序里面增加这个支持并不困难,因为微软已经提供了SDK。参考如下工程:http://www.codeproject.com/KB/debug/postmortem

1079

C++ member function pointers and others

最近一直在研究WTL、MFC的消息封装机制,这里面用到了两个核心技术:1. 成员函数指针;其实要实现一个类似于WTL的消息封装机制只需要300行代码左右,成员函数指针的调用效率要低于普通的函数指针,原因是要计算this指针,这就涉及到重载,虚函数表等。我在使用中主要发现两个要点,第一个是成员函数指针的大小是可变的,(当然也可以通过设置编译选项来使得总是使用最大值,但是缺省的是优化的选项),

1057

解决Windows 2k Load 32bit Icon的问题

在Win2K下面Load一个32bit的图标会出现黑边,下面给出的这个函数可以取代LoadImage加载32位ICON但是在2K下面不会出现黑边:) #include "StdAfx.h"//  Copied from amvideo.h#define LINE_BYTES( Width, BitCt )     (long)( ((long)Width*BitCt+31)/32 * 

868

VS2008 Addinl里面 显示自定义图标

在Visual Studio的ADDIN里面,如果想为自己的TOOLBAR上面的图标自己定义的话,需要定制一个资源DLL文件,并将该DLL文件放置在和addin对应的1033目录下面,在注册的时候增加:       val SatelliteDllName = s CppCleanUI.dll       val SatelliteDllPath = s %MODULE_PATH%详细

512
上一篇: 换域名的话怎么把搜索引擎的数据带过去
下一篇: Rundll32使用技巧 使用Shell打开选择文件对话框以及其它
oeichenwei
博客等级 码龄23年 8粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值