【wine】vb程序自定义窗口最大化崩溃分析EXCEPTION_FLT_INEXACT_RESULT 失败

故障现象,wine运行windows应用程序,点击最大化按钮崩溃,wine日志如下

02a8:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 for dll L"C:\\windows\\system32\\msxml2.dll"
029c:err:ole:com_get_class_object no class object {f5078f1e-c551-11d3-89b9-0000f81fe221} could be created for context 0x1
029c:err:dllhost:wWinMain Can't create instance of {f5078f1e-c551-11d3-89b9-0000f81fe221}
02ac:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 for dll L"C:\\windows\\system32\\msxml2.dll"
02a4:err:ole:com_get_class_object no class object {f5078f1e-c551-11d3-89b9-0000f81fe221} could be created for context 0x1
02a4:err:dllhost:wWinMain Can't create instance of {f5078f1e-c551-11d3-89b9-0000f81fe221}
 

此时有弹窗提示

运行时错误‘6’:

溢出

现把msxml4装上

原因

尽管 MSXML 4.0 并非 MSXML 3.0 和 6.0 的直接替代品,并且它可以与这两个版本共存,但在您的 Wine 环境中,由于您正在尝试运行的应用程序在日志中显示出对 MSXML 4.0 组件的依赖(通过类标识符 {f5078f1e-c551-11d3-89b9-0000f81fe221}),这表明该应用可能需要 MSXML 4.0 特定的功能或接口才能正常运行。

因此,鉴于应用程序在最大化时崩溃并且日志显示与 MSXML 4.0 相关的错误,安装 MSXML 4.0 对于解决这个问题是非常必要的。请按照之前提到的步骤,使用 winetricks 安装 MSXML 4.0 SP2 或相应可用的最新服务包,以确保您的 Wine 环境提供所需的所有必需组件来支持该应用程序。

故障依旧

设置

export WINEDEBUG="+relay,+window,+dx,+uiautomation,+com,+tid,+seh,+loaddll,+module,+heap,+handle,+cursor,+gdi,+msg" 

分析详细日志,发现可疑错误

0204:Call ntdll.RtlAllocateHeap(00cd0000,00000000,00000008) ret=6aaf1b56

00ec:trace:seh:dispatch_exception info[0]=00000000

01f8:Ret ucrtbase.memset() retval=0160cb20 ret=004134a5

00ec:trace:seh:dispatch_exception info[1]=00000001

01f8:Call ucrtbase.memset(0160cb20,00000000,00000024) ret=00402ee3

01f8:Ret ucrtbase.memset() retval=0160cb20 ret=00402ee3

00ec:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000005 at 0xf75f4cf6: /lib/i386-linux-gnu/libgcc_s.so.1 + 0x1bcf6.

00ec:warn:seh:dispatch_exception EXCEPTION_ACCESS_VIOLATION exception (code=c0000005) raised

00ec:trace:seh:dispatch_exception eax=00000001 ebx=f75ff000 ecx=ffca276c edx=00000000 esi=ffca24e0 edi=ffca25a0

00ec:trace:seh:dispatch_exception ebp=ffca2660 esp=ffca2470 cs=0023 ss=002b ds=002b es=002b fs=0063 gs=006b flags=00010246

00ec:trace:seh:call_stack_handlers calling handler at 6BBCF540 code=c0000005 flags=0

00ec:trace:seh:call_stack_handlers handler at 6BBCF540 returned 1

00ec:trace:seh:call_stack_handlers calling handler at 6BBD8FF0 code=c0000005 flags=0

00ec:Call ntdll.LdrResolveDelayLoadedAPI(6bbc0000,6bbda0dc,00000000,7b6031b0,6bbe736c,00000000) ret=6bbd8f5a

0204:trace:heap:RtlAllocateHeap handle 00CD0000, flags 0, size 0x8, return 00CDF940, status 0.

00ec:trace:module:LdrResolveDelayLoadedAPI (6BBC0000, 6BBDA0DC, 00000000, 7B6031B0, 6BBE736C, 0x00000000)

0204:Ret ntdll.RtlAllocateHeap() retval=00cdf940 ret=6aaf1b56

00ec:Ret ntdll.LdrResolveDelayLoadedAPI() retval=65482dcc ret=6bbd8f5a

0204:Ret ucrtbase.malloc() retval=00cdf940 ret=654c5c24

先找到弹窗部分调用日志(日质量太大了)

往前可以翻越到“溢出”的编码

继续向前,发现一大段返回值不为0的调用

借助AI分析,问题仍然集中到

  • 错误日志中包含了 "0260:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 for dll L"c:\windows\system32\msxml2.dll"”,表示在尝试从 msxml2.dll 获取类对象时发生了错误,错误代码 0x80040111 通常表示类未注册或无法创建所需的对象实例。
  • 后续还有 "025c:err:ole:com_get_class_object no class object {f5078f1e-c551-11d3-89b9-0000f81fe221} could be created for context 0x1",同样表明无法创建类对象,这也可能导致了点击自定义最大化按钮时应用程序的崩溃。

卸载这几个,逐个安装测试

直接创建新的wine环境,分析最新的关键错误信息

0024:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0021e3b0) ret=660d0956 ... 0024:warn:seh:dispatch_exception EXCEPTION_FLT_INEXACT_RESULT exception (code=c000008f) raised

更多信息

0120:trace:heap:RtlFreeHeap handle 00140000, flags 0, ptr 01C609A8, return 1, status 0.

0120:Ret KERNEL32.HeapFree() retval=00000001 ret=62520b7b

0120:Call ntdll.RtlSizeHeap(00140000,00000000,007f42f8) ret=684d25e1

0024:Ret ntdll.RtlUnlockHeap() retval=00000001 ret=7b042b3d

0024:Ret KERNEL32.GlobalFree() retval=00000000 ret=660c36e9

0024:Call gdi32.SelectObject(0741004c,31090183) ret=660c36f5

0024:trace:gdi:SelectObject (0741004C,31090183)

0024:trace:gdi:NtGdiExtGetObjectW 0x1b00027 16 0x21de60

0024:trace:gdi:NtGdiExtGetObjectW 0x1900020 12 0x21de84

0024:trace:gdi:NtGdiExtGetObjectW 0x18a002d 92 0x21dbb4

0024:trace:gdi:NtGdiExtGetObjectW 0x18a002d 92 0x21d988

0024:trace:gdi:NtGdiExtGetObjectW 0x18a002d 92 0x21d508

0024:Ret gdi32.SelectObject() retval=01890034 ret=660c36f5

0024:Call gdi32.SetStretchBltMode(164100f2,00000001) ret=66058b12

0024:Ret gdi32.SetStretchBltMode() retval=00000003 ret=66058b12

0024:Call gdi32.SelectObject(0741004c,01890034) ret=6250d969

0024:trace:gdi:SelectObject (0741004C,01890034)

0024:trace:gdi:NtGdiExtGetObjectW 0x1b00027 16 0x21dea0

0024:trace:gdi:NtGdiExtGetObjectW 0x1900020 12 0x21dec4

0024:trace:gdi:NtGdiExtGetObjectW 0x18a002d 92 0x21dbf4

0024:trace:gdi:NtGdiExtGetObjectW 0x18a002d 92 0x21d9c8

0024:trace:gdi:NtGdiExtGetObjectW 0x18a002d 92 0x21d548

0024:Ret gdi32.SelectObject() retval=31090183 ret=6250d969

0024:Call oleaut32.SysFreeString(00000000) ret=6600e1a9

0024:Ret oleaut32.SysFreeString() retval=684ea1d8 ret=6600e1a9

0024:Call oleaut32.SysFreeString(00000000) ret=6600e1ae

0024:Ret oleaut32.SysFreeString() retval=684ea1d8 ret=6600e1ae

0024:Call oleaut32.SysFreeString(00000000) ret=6600e1b3

0024:Ret oleaut32.SysFreeString() retval=684ea1d8 ret=6600e1b3

0024:Call KERNEL32.MultiByteToWideChar(00000000,00000000,0042a8c0 "TypeApp",ffffffff,00000000,00000000) ret=660da0b1

0024:Call ntdll.strlen(0042a8c0 "TypeApp") ret=7b031dda

0024:Ret ntdll.strlen() retval=00000007 ret=7b031dda

0024:Ret KERNEL32.MultiByteToWideChar() retval=00000008 ret=660da0b1

0024:Call oleaut32.SysAllocStringLen(00000000,00000007) ret=660da0bc

0024:Call ucrtbase.memset(02844c38,00000055,00000014) ret=62506bf6

0024:Ret ucrtbase.memset() retval=02844c38 ret=62506bf6

0024:Call ucrtbase.memset(02844c4c,000000ab,0000000c) ret=62506c14

0024:Ret ucrtbase.memset() retval=02844c4c ret=62506c14

0024:Call ucrtbase.memset(02844c3c,00000000,00000010) ret=62507b67

0024:Ret ucrtbase.memset() retval=02844c3c ret=62507b67

0024:Ret oleaut32.SysAllocStringLen() retval=02844c3c ret=660da0bc

0024:Call KERNEL32.MultiByteToWideChar(00000000,00000000,0042a8c0 "TypeApp",ffffffff,02844c3c,00000008) ret=660da0db

0024:Call ntdll.strlen(0042a8c0 "TypeApp") ret=7b031dda

0024:Ret ntdll.strlen() retval=00000007 ret=7b031dda

0024:Ret KERNEL32.MultiByteToWideChar() retval=00000008 ret=660da0db

0024:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0021e3b0) ret=660d0956

0024:trace:seh:dispatch_exception code=c000008f flags=1 addr=7B011DC4 ip=7b011dc4

0024:trace:seh:dispatch_exception info[0]=deadcafe

0024:trace:seh:dispatch_exception info[1]=deadcafe

0024:warn:seh:dispatch_exception EXCEPTION_FLT_INEXACT_RESULT exception (code=c000008f) raised

0024:trace:seh:dispatch_exception eax=0021e300 ebx=deadcafe ecx=00000004 edx=0021e3b0 esi=0021e3b0 edi=0021e370

0024:trace:seh:dispatch_exception ebp=0021e358 esp=0021e2f4 cs=1fc0023 ss=21002b ds=21002b es=002b fs=210063 gs=7bc4006b flags=00000246

0024:trace:seh:call_stack_handlers calling handler at 660E3BBE code=c000008f flags=1

0024:trace:seh:call_stack_handlers handler at 660E3BBE returned 1

0024:trace:seh:call_stack_handlers calling handler at 660E3BBE code=c000008f flags=1

0024:trace:seh:call_stack_handlers handler at 660E3BBE returned 1

0024:trace:seh:call_stack_handlers calling handler at 660E3B6B code=c000008f flags=1

0024:trace:seh:__regs_RtlUnwind code=c0000027 flags=2

0024:trace:seh:__regs_RtlUnwind eax=00000000 ebx=0021e300 ecx=0021e550 edx=7ffc2000 esi=0021e550 edi=0021e01c

0024:trace:seh:__regs_RtlUnwind ebp=0021dd98 esp=0021dd8c eip=66103ce6 cs=0023 ds=002b fs=0063 gs=006b flags=00000202

0024:trace:seh:__regs_RtlUnwind calling handler at 7BC5AAC0 code=c0000027 flags=2

0024:trace:seh:__regs_RtlUnwind handler at 7BC5AAC0 returned 1

待续。。。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯练习系统(算法训练)ALGO-977 P0805大数乘法

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的…

C++ 哈希

目录 1. 哈希概念 2. 哈希冲突 3. 哈希函数 4. 哈希冲突解决 4.1 闭散列 4.2 开散列 4.3 对于哈希表的补充 5. 开散列与闭散列比较 6. 哈希表的模拟实现以及unorder_set和unorder_map的封装 1. 哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间…

谷粒商城——分布式基础(全栈开发篇第一部分)

文章目录 一、服务治理网路数据支撑日志处理ELK应用监控集成工具开发工具 二、环境创建1、虚拟机创建2、虚拟机安装docker等1. 安装docker1. 配置阿里docker3.docker安装mysql错误 4、docker安装redis 3、软件1.Maven 阿里云镜像1.8jdk2、idea lombokmybatisX ,3、 …

算法之滑动窗口

题目1:209. 长度最小的子数组 - 力扣(LeetCode) 解法⼀(暴力求解): 思路: 从前往后, 枚举数组中的任意⼀个元素, 把它当成起始位置, 然后从这个起始位置开始, 然 后寻找⼀段最短的区间, 使得这段区间的和「⼤于等于」⽬标值. 将所有元素作为…

Docker容器化技术(数据卷的管理)

数据卷 是一个可供容器使用的特殊目录,它将主机操作系统目录直接 映射进容器,类似于 Linux 中的 mount 行为 。 数据卷:可以提供很多有用的特性 数据卷可以在容器之间共事和重用,容器间传递数据将变得高效与方便;对数…

二分查找【详解】

本期介绍🍖 主要介绍:二分查找的简单思路,为什么必须在有序的前提下才能使用二分查找,该怎么用C程序来实现二分查找,二分查找的局限性👀。 文章目录 1. 题目2. 思路3. 前提条件4. 编写程序 1. 题目 在一个有…

详解mfc140.dll文件,修复mfc140.dll缺失的多种方法

mfc140.dll文件是Windows操作系统中的一个非常重要的动态链接库文件。它不仅被广泛用于操作系统本身的正常运行,还被许多应用程序所依赖。 一、详解mfc140.dll文件 mfc140.dll是Microsoft Foundation Classes(MFC)库中的一个动态链接库&…

SpringBoot整合阿里云文件上传OSS以及获取oss临时访问url

SpringBoot整合阿里云文件上传OSS 1. 引入相关依赖<!--阿里云 OSS依赖--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency><dependen…

106. Dockerfile通过多阶段构建减小Golang镜像的大小

我们如何通过引入具有多阶段构建过程的Dockerfiles来减小Golang镜像的大小&#xff1f; 让我们从一个通用的Dockerfile开始&#xff0c;它负责处理基本的事务&#xff0c;如依赖项、构建二进制文件、声明暴露的端口等&#xff0c;以便为Go中的一个非常基础的REST API提供服务。…

常见的排序算法的时间复杂度

常见的排序算法的时间复杂度 排序算法的时间复杂度通常取决于输入数据的规模&#xff08;通常表示为n&#xff09;。以下是一些常见排序算法及其平均、最好和最坏情况下的时间复杂度&#xff1a; 1、冒泡排序&#xff08;Bubble Sort&#xff09; 平均时间复杂度&#xff1a;…

进程打开文件

目录 一、预备知识 二、操作文件函数 三、操作文件系统调用 四、理解进程打开文件 函数 vs 系统调用 open的返回值 fd 如何理解一切皆文件&#xff1f; 理解struct file 内核对象 fd的分配规则 && 重定向 理解标准错误流&#xff08;2号文件描述符&#xff0…

得帆助力大族激光主数据平台建设,用数据为企业生产力赋能

本期客户 大族激光科技产业集团股份有限公司&#xff08;以下简称“大族激光”&#xff09;是一家从事工业激光加工设备与自动化等配套设备及其关键器件的研发、生产、销售&#xff0c;激光、机器人及自动化技术在智能制造领域的系统解决方案的优质提供商&#xff0c;是国内激光…

如何通过四维轻云SDK开发打造智慧景区管理平台?

智慧景区管理平台通常是基于GIS技术&#xff0c;在三维实景地图的基础上&#xff0c;接入景区各类传感设备、第三方系统数据&#xff0c;进行业务功能的梳理及开发。但对于没有GIS开发经验的团队而言&#xff0c;地图开发具有一定的技术门槛&#xff0c;尤其是需要在前端解决好…

VR全景在智慧园区中的应用

VR全景如今以及广泛的应用于生产制造业、零售、展厅、房产等领域&#xff0c;如今720云VR全景更是在智慧园区的建设中&#xff0c;以其独特的优势&#xff0c;发挥着越来越重要的作用。VR全景作为打造智慧园区的重要角色和呈现方式已经受到了越来越多智慧园区企业的选择和应用。…

记事小本本

记事小本本 实现效果 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…

Zookeeper详解

1.Zookeeper概述 1.Zookeeper概念 Zookeeper是 Apache Hadoop 项目下的一个子项目&#xff0c;是一个树形目录服务 Zookeeper 翻译过来就是动物园管理员&#xff0c;他是用来管 Hadoop&#xff08;大象&#xff09;、Hive(蜜蜂)、Pig(小猪)的管理员。简称zk Hadoop: 存储海…

Java项目:46 ssm005基于SSM框架的购物商城系统+jsp(含文档)

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 项目是单体ssm电商水果平台&#xff0c;包括前台商城平台及后台管理系统 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、…

Buuctf-Web-[极客大挑战 2019]EasySQL 1 题解及思路总结

​ 启动靶机 目录 题要做题过程第一步——找到页面与数据库产生交互的地方第二步——查看SQL语句闭合方式判断SQL注入闭合方式&#xff1a;方法一&#xff1a;使用\(转义字符)来判断SQL注入的闭合方式方法二&#xff1a;输入1、1、1"判断SQL语句闭合方式 第三步——进行SQ…

代理IP如何应对自动化测试和爬虫检测

目录 一、代理IP在自动化测试和爬虫中的作用 二、代理IP的优缺点分析 1.优点 2.缺点 三、应对自动化测试和爬虫检测的策略 1.选择合适的代理IP 2.设置合理的请求频率和间隔 3.模拟人类行为模式 4.结合其他技术手段 四、案例与代码示例 五、总结 在自动化测试和爬虫开…

Alpha突触核蛋白神经退行性疾病介绍

StressMarq——Alpha突触核蛋白&神经退行性疾病 Alpha突触核蛋白科研背景 • Alpha突触核蛋白约 15kDa, 140个氨基酸 • StressMarq/欣博盛生物在E. coli中过表达人源基因然后将蛋白从细胞质基质中纯化出来 • 未折叠的alpha突触核蛋白单体在12% SDS-PAGE上为~15 kDa的条…