`
jdw
  • 浏览: 163116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

LoaderLock错误:Managed Debugging Assistan(MDA)

    博客分类:
  • C#
阅读更多

Problem:
I have created a DLL in LabVIEW and have been trying to call it in Visual C++. Everytime I run my code I get a message telling me that a breakpoint is reached, although there is no breakpoint specified. Also, in the output window I get the following message.

'C:\Program Files\National Instruments\Shared\LabVIEW Run-Time\7.0\DNCompInfo.dll' is attempting managed execution inside OS Loader lock. Do not attempt to run managed code inside a DllMain or image initialization function since doing so can cause the application to hang.

Solution:
This issue would most likely be found on systems running .NET Framework Version 2.0. The LoaderLock managed debugging assistant (MDA) attempts to execute managed code on a thread that holds the Microsoft Windows operating system loader lock. Any such execution is illegal because it can lead to deadlocks and the use of DLLs before they have been initialized by the operating system's loader. In order to avoid this error message, turn off the Managed Debugging Assistant (MDA) by adding the following key in Windows Registry.
Note: Modifying the Windows registry incorrectly can lead to problems. Be sure to back up the registry before making any changes.

Add the string value "MDA"="0" in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework  

 

来源:(http://blog.sina.com.cn/s/blog_5afaebf50100ag26.html) - LoaderLock错误:Managed Debugging Assistan(MDA)_戴眼镜的猪_新浪博客

出错信息为:
   检测到LoaderLock,正试图在OS加载程序锁内执行托管代码,不要尝试在DllMain或映像初始化函数内运行托管代码,这样会导致应用程序挂起。

解决办法:
   在"Debug"菜单下----"Exceptions"----"Managed Debugging Assistants"中勾掉"LoaderLock"

说明:
    .NET2.0中增加了42种非常强大的调试助手(MDA),Loaderlock是其中之一。Loaderlock检测在一个拥有操作系统loader lock的线程上运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。虽然这样做很有必要,但在进行开发调试的时候,实在太麻烦。  

注明:,NET中使用后一种方法解决,VC6中使用前一种方法解决

来源:(http://blog.sina.com.cn/s/blog_5afaebf50100ag26.html) - LoaderLock错误:Managed Debugging Assistan(MDA)_戴眼镜的猪_新浪博客

分享到:
评论

相关推荐

    Managed_DirectX.rar_DIRECTX_Managed DirectX_Managed DirectX 9

    Managed DirectX是微软为.NET Framework开发的一个图形编程接口,它允许开发者使用C#、VB.NET等.NET语言来创建基于DirectX技术的游戏和图形应用程序。Managed DirectX 9是该接口的一个特定版本,对应于DirectX 9.0c...

    managed directx sound库

    6. **事件驱动编程**:Managed DirectX Sound库使用事件驱动模型,当音频播放完成或发生错误时,可以触发相应的事件,便于程序响应。 7. **易于使用**:与原生DirectX相比,Managed DirectX Sound库使用.NET语法,...

    C#中调用OCX控件

    这个问题通常是由于.NET Framework的MDA (Managed Debugging Assistants) 功能引起的,具体来说是LoaderLock MDA。 - **LoaderLock的作用**:LoaderLock会在一个线程持有操作系统loader lock的情况下运行托管代码时...

    安装sql2008的错误

    MOF(Managed Object Format)编译器是Windows Management Instrumentation (WMI) 的一个核心组件,用于将MOF格式的文本文件转换成WMI可以理解的元数据。这些元数据定义了如何管理特定的系统组件和服务。 #### WMI...

    ManagedWiFi C#

    ManagedWiFi C# 是一个用于C#编程环境中的WiFi管理库,它允许开发者通过.NET Framework来访问Windows操作系统内置的WiFi管理功能。这个库主要用于简化在Windows系统中进行无线网络的编程,比如扫描可用的WiFi网络、...

    Z-Bar: Managed .NET for Barcode Printers-开源

    MS VS.NET(C++、C#、VB.NET)组件、控件和类库(Win32/64 和 WinCE/WM)的集合,以帮助开发使用某些条码打印机(Zebra)的 .NET 应用程序中的打印功能、奥尼尔等)。

    status-page:managed我们托管网站的正常运行时间监控和状态页面

    状态页: :orange_square: 部分中断 该存储库包含由支持的托管网站的正常运行时间监控器和状态页面。 我们将“用作事件报告,将“用作正常运行时间监视器,并将“用作状态页面。 借助 ,您可以获得自己不受限制的...

    在ASP.NET 2.0中操作数据:用Managed Code创建存储过程和用户自定义函数(上部分)

    在ASP.NET 2.0中操作数据:用Managed Code创建存储过程和用户自定义函数(上部分)

    silverlight 错误代码对照

    Managed runtime 错误 * 2250:AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR * 2251:AG_E_RUNTIME_MANAGED_ACTIVATION * 2252:AG_E_RUNTIME_MANAGED_ASSEMBLY_DOWNLOAD * 2253:AG_E_RUNTIME_MANAGED_ASSEMBLY_LOAD * ...

    外接程序(MDA)实例.rar

    外接程序(MDA,Managed Add-in)是微软Office应用程序如Word、Excel和Outlook等支持的一种扩展机制,允许开发者创建可插入到Office应用中的独立组件。这些组件能够增强或自定义Office应用的功能,使用户能够执行...

    在ASP.NET 2.0中操作数据:用Managed Code创建存储过程和用户自定义函数(下部分)

    在ASP.NET 2.0中操作数据:用Managed Code创建存储过程和用户自定义函数(下部分),至此,这个系列的教程就全部发上来了,如果有什么问题请给我留言,谢谢

    Managed IO Completion Ports.docx

    Managed IOCP provides a managed interface to interact with the underlying Win32 IOCP API. This enables developers to utilize the power of IOCP without directly dealing with the low-level APIs. It ...

    dockware:Managed Shopware 6具有码头软件的Docker设置。 在数分钟内(本地)在Docker中运行任何Shopware 6版本

    码头软件 大家好,感谢您访问码头软件项目( ) 什么是码头软件? 扩展坞是一个托管的Shopware 6泊坞窗映像。 在数分钟内即可在Docker本地运行和探索任何Shopware 6版本。 不再烦恼和快速燃烧!...

    JSF入门级教程

    Beans的组态与设定是Managed Beans的核心功能之一,允许开发者配置Managed Beans的行为。Managed Beans提供了以下几种组态与设定: * scope:Managed Beans提供了一个scope机制,允许开发者配置Managed Beans的生命...

    Micron发布Managed NAND闪存,应对多媒体手机等存储需求.pdf

    - **错误校正码(ECC)**:为了确保数据的完整性,Managed NAND内置了ECC功能。当数据被写入或读取时,系统会自动检测并纠正错误,从而提高了数据的可靠性。 - **磨损均衡算法**:为了延长闪存的使用寿命,Managed ...

    ODP.NET_Managed121020.zip

    ODP.NET Managed 121020 是Oracle公司为.NET开发者提供的一个数据库连接组件,主要用于在C#等.NET环境中与Oracle数据库进行交互。这个压缩包包含了一系列用于安装、卸载以及查阅信息的文件,下面将详细介绍这些文件...

    一个很不错的C#录音控件源码,帮您提供提示出错的解决方案

    一个很不错的C#录音控件源码,如果觉得超值请好评。谢谢! 以下文字是帮您提供提示... 最简单的方法,在"Debug"菜单下----"Exceptions"----"Managed Debugging Assistants"中勾掉"LoaderLock") 再Debug,OK,一切搞定

    深入Managed DirectX 9文档

    **深入Managed DirectX 9 文档** Managed DirectX 9(MDX)是微软为.NET Framework提供的一套编程接口,用于在Windows平台上开发游戏和多媒体应用程序。它简化了DirectX API的使用,使得C#等.NET语言的开发者也能...

    C#调用activeX控件方法步骤.docx

    在运行时,如果遇到“正试图在OS加载程序锁内执行托管代码”的错误,这通常是由于MDA(Managed Debugging Assistants)的LoaderLock助手触发的警告。解决方法是禁用LoaderLock助手,或者修改注册表以全局禁用MDA。 ...

    Unity-debugging-2019.x.zip

    安装完成后,打开dnSpy并加载Unity的"mono.dll"文件,通常位于Unity安装目录的"Data\Managed"文件夹下。 2. **反编译与浏览代码**:dnSpy可以将IL代码转换为可读的C#代码,便于理解和分析。在左侧的文件浏览器中...

Global site tag (gtag.js) - Google Analytics