加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

调试 – 如何调试DLL加载失败:对内存位置的无效访问

发布时间:2020-12-14 01:56:06 所属栏目:Windows 来源:网络整理
导读:我有一个MinGW64编译的DLL( python模块),加载时出错: ImportError: DLL load failed: Invalid access to memory location DLL仅链接到64位库(Dependency Walker确认)并具有调试符号.代码相当复杂c 11(大约30个源文件),我不能将它平分.我已经用MinGW64成功编
我有一个MinGW64编译的DLL( python模块),加载时出错:

ImportError: DLL load failed: Invalid access to memory location

DLL仅链接到64位库(Dependency Walker确认)并具有调试符号.代码相当复杂c 11(大约30个源文件),我不能将它平分.我已经用MinGW64成功编译和测试了其他模块,工具链工作正常.

网络上的一些人报告了使用SSE2指令的代码的错误(我的hw支持的那些,我没有明确地使用它们)或者从尚未初始化的全局变量中读取(有一些带__attribute的函数__( (构造函数)),但那些应该在MinGW64中工作得很好,根据我读过的内容;更新:我删除了所有构造函数以确保它不是原因 – 它没有区别).

分析错误来自何处的方法是什么?

我尝试了什么:

当我在调试器中加载DLL时(使用ctypes.WinDLL(…)),我很遗憾地从gdb中获得了无意义的堆栈跟踪 – 显然,错误被ntdll.dll捕获并且信号被引发,但是它没有给出任何进一步的信息.提示错误的来源:

Program received signal SIGTRAP,Trace/breakpoint trap.
0x0000000077c23522 in ntdll!ExpInterlockedPopEntrySListFault16 ()
   from C:Windowssystem32ntdll.dll
(gdb) warning: HEAP[python.exe]:
warning: Invalid address specified to RtlSizeHeap( 00000000003B0000,0000000002306830 )


(gdb) bt
#0  0x0000000077c23522 in ntdll!ExpInterlockedPopEntrySListFault16 ()
   from C:Windowssystem32ntdll.dll
#1  0x0000000077c0c241 in ntdll!RtlZeroHeap ()
   from C:Windowssystem32ntdll.dll
#2  0x0000000077c0c250 in ntdll!RtlZeroHeap ()
   from C:Windowssystem32ntdll.dll
#3  0x0000000077c3c130 in ntdll!LdrLoadAlternateResourceModuleEx ()
   from C:Windowssystem32ntdll.dll
#4  0x00000000003b0000 in ?? ()
#5  0x0000000002306830 in ?? ()
#6  0x00000000003b0000 in ?? ()
#7  0x00000000792e21c0 in ?? ()
#8  0x00000000003b0000 in ?? ()
#9  0x0000000077c3c0ba in ntdll!LdrLoadAlternateResourceModuleEx ()
   from C:Windowssystem32ntdll.dll
#10 0xffffffffffffffff in ?? ()
#11 0x0000000050000061 in ?? ()
#12 0x0000000000000000 in ?? ()

我还将目标文件与“hello world”可执行文件链接起来,但是当使用来自woomain.exe的读取符号(这是我的可执行文件)打开文件时,gdb已经崩溃了:

解决方法

问题是python在编译模块时链接到不同的msvcrt而不是MinGW – 它在 http://bugs.python.org/issue16472报告.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读