哈尔滨房产信息网官方网站龙岩做网站开发多久时间

bicheng/2026/1/19 7:45:44/文章来源:
哈尔滨房产信息网官方网站,龙岩做网站开发多久时间,织梦系统怎么做单页网站,北京高端网站目录 1、问题说明 2、使用Windbg动态调试去初步分析 3、使用Windbg详细分析 4、最后 VC常用功能开发汇总#xff08;专栏文章列表#xff0c;欢迎订阅#xff0c;持续更新...#xff09;https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门…目录 1、问题说明 2、使用Windbg动态调试去初步分析 3、使用Windbg详细分析 4、最后 VC常用功能开发汇总专栏文章列表欢迎订阅持续更新...https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程专栏文章列表欢迎订阅持续更新...https://blog.csdn.net/chenlycly/article/details/125529931C软件分析工具从入门到精通案例集锦专栏文章持续更新中...https://blog.csdn.net/chenlycly/article/details/131405795C/C基础与进阶专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_11931267.html开源组件及数据库技术专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_12458859.html网络编程与网络问题分享专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_2276111.html       最近在联调程序的新功能时更新了底层模块的库之后出现了启动报错导致程序启动失败的问题。这个问题有一定的代表性在这里给大家分享一下问题的排查过程。 1、问题说明 当前软件的新需求基本开发完成目前正处于调试与bug修改的过程中因为登录当前的平台出现注册失败的问题软件重启了几次还是有问题于是手动将代码中的dll都换成最新的版本拷贝终端组件整体编译的库更新加入到版本控制的底层库并将头文件更新成最新的。更新完成后在VS中重新编译代码开启调试结果程序一启动就报错了弹出如下的提示框 查看此时的函数调用堆栈显示崩溃在medaisdk.dll中但看不到中间的模块如下 这个崩溃是必现的程序始终启动不起来导致没法继续进行业务联调。 此外还有个奇怪的现象同一个release版本的软件在一个测试同事的Win10系统上启动并没有问题可以正常运行。但在另一个测试同事的Win7系统中一启动就崩溃是必现的 后来排查得知是代码中访问了一个未初始化的指针变量野指针引发内存访问违例导致的。在release下未初始化的变量值不会自动初始化是分配内存时内存中残留的值是随机值。 所以从Win7和Win10系统中的不同表现可以看出两个系统的内存管理机制是有差异的正是因为有差异导致同一个版本的软件在两个系统中有不同的表现。 在这里给大家重点推荐一下我的几个热门畅销专栏 专栏1该专栏订阅量接近350个有很强的实战参考价值广受好评 C软件异常排查从入门到精通系列教程专栏文章列表欢迎订阅持续更新...https://blog.csdn.net/chenlycly/article/details/125529931 本专栏根据近几年C软件异常排查的项目实践系统地总结了引发C软件异常的常见原因以及排查C软件异常的常用思路与方法详细讲述了C软件的调试方法与手段以图文并茂的方式给出具体的实战问题分析实例带领大家逐步掌握C软件调试与异常排查的相关技术适合基础进阶和想做技术提升的相关C开发人员 专栏中的文章都是通过项目实战总结出来的通过项目实战积累了大量的异常排查素材和案例有很强的实战参考价值专栏文章还在持续更新中预计文章篇数能更新到200篇以上 专栏2  C/C基础与进阶专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_11931267.html 以多年的开发实战为基础总结并讲解一些的C/C基础与进阶内容以图文并茂的方式对相关知识点进行详细地展开与阐述专栏涉及了C/C领域的多个方面的内容同时给出C/C及网络方面的常见笔试面试题并详细讲述Visual Studio常用调试手段与技巧 专栏3  开源组件及数据库技术https://blog.csdn.net/chenlycly/category_12458859.html 以多年的开发实战为基础分享一些开源组件及数据库技术 2、使用Windbg动态调试去初步分析 于是决定使用Windbg动态分析一下看看到底是什么原因导致的。因为程序启动时就发生了崩溃没法先启动程序再把Windbg附加上去所以需要直接使用Windbg去启动程序这样才能监测到程序启动过程中的异常。 用Windbg动态启动程序感知到了异常查看此时的函数调用堆栈然后找来函数调用堆栈中相关模块的pdb文件设置到Widnbg中重新查看函数调用堆栈堆栈中显示了详细的函数名称和代码行号 从函数调用堆栈得知在程序启动时调用了终端组件终端组件业务初始化接口然后终端组件层在创建音视频组的编解码器时产生了内存访问违例进而产生崩溃。 初步怀疑可能是终端组件库与音视频库mediasdk.dll版本不一致导致的可能是mediasdk.dll的头文件修改了修改了函数参数或者修改了结构体只发布了dll库文件没有发布头文件导致的。当时因为手头有很多事情要处理没有去深究这个问题于是尝试让音视频组重新发布mediasdk.dll库和头文件看看发布后还没有问题。 3、使用Windbg详细分析 但mediasdk.dll库文件和头文件重新发布后终端组件的相关模块重新编译然后拷贝最新的终端组件及底层的库重新编译主程序启动调试运行结果启动时还是报错。看来并不是版本不对导致的问题。 于是使用Windbg启动程序感知到异常中断拿来pdb文件查看详细的函数调用堆栈和维护mediasdk.dll模块的同事一起对照代码进行详细分析。崩溃时的堆栈如下 从堆栈中可以看出代码崩溃在mediasdk!CVidEncWrapper::Id函数中查看该函数的源码该函数中只是简单地返回一个整型变量的值 所以引发问题的点应该不在该函数中需要沿着函数调用堆栈往上看看调用mediasdk!CVidEncWrapper::Id接口的函数。 另外查看发生崩溃的这条汇编指令首先是访问了一个内核态地址0xcdcdf001引发的内存访问违例用户态的代码不能访问内核态的内存地址。然后查看这条汇编指令中用到的寄存器eax崩溃时该寄存器的值为0xcdcdcdcd。以前我讲过一些C程序中常见的异常值0xcdcdcdcd、0xdddddddd、0xfeeefeee等这几个异常值的说明如下 所以第一眼看到这个0xcdcdcdcd根据上面的含义说明就能大概判断代码中使用了未初始化的堆内存变量可能是mediasdk!CVidEncWrapper::Id函数所在的类对象有问题查看这条返回整型变量的汇编指令按讲返回成员变量的值当前类对象地址应该是存放在ecx寄存器中的按讲返回成员变量的值直接使用ecx就行为啥会使用eax寄存器呢 要确定这个问题很简单直接查看汇编代码上下文就知道了。于是在菜单栏中点击 View - Disassembly查看汇编代码上下文 从汇编代码就找到答案了。对于被调用函数CVidEncWrapper::Id主调函数肯定是将CVidEncWrapper类对象的首地址通过ecx传进来的汇编代码中先将ecx中的C类对象首地址拷贝到[ebp-4]栈内存上然后又将[ebp-4]栈内存中的值拷贝到eax中然后执行发生崩溃的这条指令所以执行该条崩溃指令时eax中存放的就是当前类对象的首地址。 所以给CVidEncWrapper::Id函数传入的CVidEncWrapper对象首地址为0xcdcdcdcd肯定使用的是一个未初始化的指针变量导致的。所以沿着函数调用堆栈查看调用CVidEncWrapper::Id的函数mediasdk!CKdvEncoder::CKdvEncoder这是CKdvEncoder类的构造函数。根据函数调用堆栈中显示的cpp路径及代码行号找到对应的源码位置如下 这行代码是一个打印日志的宏Mc_Enter这就是个宏并没有看到对CVidEncWrapper::Id函数调用啊是不是Windbg中指示的行号有问题 我不了解音视频组的代码音视频组维护代码的也是一个刚接手的刚毕业小哥对代码也不熟悉。于是以“Id()”为关键字搜索看看是哪些地方调用了CVidEncWrapper::Id函数。结果刚才的那个打印日志的宏定义中调用了 这就对上了说明Windbg指示的行号是没问题的。对于宏在代码编译时会被替换成定义的内容。 这个打印日志的宏是放置在CXXXEncoder类的构造函数的入口处而对指针变量m pcXXXVideoEncoder的初始化放在宏的下一行所以在宏定义中访问了没有初始化的指针变量m_pcXXXVideoEncoder该指针变量在Debug下会被初始化为0xcdcdcdcd指针变量的内存区域中会被填充成0xcdcdcdcd所以将0xcdcdcdcd作为一个CVidEncWrapper类对象的首地址调用CVidEncWrapper::Id接口去读取类中的成员变量m dwIndex的值读成员变量m dwIndex的值就是去读取该变量在内存中的内容即访问该变量的内存。 类成员变量的内存位于所在CVidEncWrapper类对象中是相对于类对象首地址的偏移即eax2234h 0xcdcdcdcd 2234h 0xcdcdf001所以要读取成员变量m dwIndex的值就是去访问该变量的内存地址0xcdcdf001中的内容但这个地址对于32为程序是个内核态内存地址当前代码是用户态的代码是不能访问内核态地址的所以产生了内存访问违例程序进而发生崩溃。 解决办法是在CXXXEncoder构造函数中将对指针变量m_pcXXXVideoEncoder初始化的代码调整到打印日志那句宏Mc_Enter代码前面去就好了。保证在使用前就被初始化。 4、最后 当前这个问题是必现的为啥之前没有出过问题呢查看音视频组代码的修改记录在打印宏Mc_Enter的定义处修改了宏的实现代码。当时修改代码后只在release下做了测试没有测试Debug版本的这个问题在Debug下是必现的。 最开始我们说过使用问题库的Relase软件版本通过release安装包安装的在Win10系统上可以正常运行的没有暴露出问题。但这个版本在Win7上启动会直接报错的这是Win7和Win10中的内存管理机制不同导致的。现在大部分人用的都是Win10所以可能很难将问题暴露出来。所以有两点需要注意一下 1Release版本没问题不代表Debug版本没问题 2Win10系统上运行没问题不代表在其他系统比如Win7上运行没问题。 此外还有两点值得注意一下 1通过异常值0xcdcdcdcd初步推断出是变量未初始化引起的然后以这个线索为切入点快速定位问题 2在崩溃的那条汇编代码中没有通过ecx去访问类中成员变量的内存而是使用eax查看一下CVidEncWrapper::Id函数的汇编代码就知道了。查看上下文便知道当前类对象的首地址已经传给了eax了所以在崩溃的额那条汇编指令中使用了eax。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站安全性设计什么网站广告做多

学习笔记&#xff1a; 1. 使用{Binding}标记拓展在XAML中进行绑定。通过绑定&#xff0c;所有数据上下文的变化都将自动更新到控件上。 <TextBlock Text"{Binding Name}"/> 2. 绑定模式 可以通过指定{Binding}的Mode来修改绑定的行为: OneWay 源的变化自动…

展示型网站的特点浦东网站开发培训班

A. Strange Splitting 思路 贪心 将题目中的红色元素范围不等于蓝色元素范围改成红色元素范围小于蓝色范围其实是一样的 那么红色元素范围最小是0&#xff0c;要占据一个元素。然后我们只要从数组中找到两个不同的元素就能够使得蓝色元素范围大于0&#xff0c;满足题意。 …

东莞建材网站建设有了域名空间服务器怎么做网站

华子目录 简介概念功能 分类文字接口图形接口 文字接口ssh连接服务器浅浅介绍一下加密技术凯撒加密加密分类对称加密非对称加密非对称加密方法&#xff08;也叫公钥加密&#xff09; ssh两大类认证方式&#xff1a;连接加密技术简介密钥解析 ssh工作过程版本协商阶段密钥和算法…

长沙市做网站的网站wordpress 回复楼层

在第二章的第7课&#xff0c;我们实现了一个推流端&#xff0c;可以把音视频推送到rtmp服务器&#xff1b;在第一章的第4课&#xff0c;我们实现了一个播放器&#xff0c;可以正常播放rtmp音视频流。聪明的你应该可以想到了&#xff1a;把推流端和播放端合并在一起&#xff0c;…

微软公司做网站的软件互联网营销有哪些方式

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

做网站所需技术新网站多久收录内页

目录Spring IOCIOC是什么IOC可以做什么依赖注入IOC和DIIOC容器Bean配置IOC容器spring ioc 依赖XML配置实例化容器使用容器xml配置详解spring对bean的管理1、创建bean的三种方式2、bean对象的作用范围3、bean对象的生命周期构造函数依赖注入Setter方法依赖注入注解配置使用xml和…

星巴克网站建设WordPress代码查看

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

专业网站设计联系电话三网合一网站建设报价

在Java编程中&#xff0c;API&#xff08;应用程序编程接口&#xff09;是一套常用于执行特定任务或与系统交互的预定义函数和协议集合。Java标准库&#xff08;也称为Java API&#xff09;提供了广泛的功能&#xff0c;包括集合操作、文件处理、网络编程等&#xff0c;这些都是…

东海网站建设ppt大全免费模板

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 机器人在一个无限大小的 XY 网格平面上行走&#xff0c;从点 (0, 0) 处开始出发…

重庆网站优化网络服务潍坊住房和城乡建设部网站

01 阿里面试题之MySQL 之前的阿里面试题都有做总结&#xff0c;具体面试题内容整理成了文档&#xff0c;本文是针对MySQL系列的&#xff0c;所以下面只展示了自己第一次面试阿里时被吊打问到的一些MySQL难题 请解释关系型数据库概念及主要特点&#xff1f;请说出关系型数据库…

怎么制作网站店铺吸引人的微信软文

Go快速开发框架自定义数据库搜索条件&#xff0c;当你前端传多个搜索条件时候&#xff0c;需要接口对条件做判断&#xff0c;拼接查找的sql语句实现查询。下面我们对自定义搜索条件使用说明。 1.创建存储条件的数组 whereMap : gmap.New() 2.根据接口传参组装sql查询条件 //…

电器工程东莞网站建设玉山县建设局网站

目录 1.题目概述 2.题解 思路分析 具体实现 1.题目概述 验证尼科彻斯定理&#xff0c;即&#xff1a;任何一个整数m的立方都可以写成m个连续奇数之和。 例如&#xff1a; 1^31 2^335 3^37911 4^313151719 输入一个正整数m&#xff08;m≤100&#xff09;&#xff0c;将…

qq群网站推广为什么搜索不到刚做的网站

SQL Server定期收缩日志文件详细步骤 一、环境配置1、查看数据库的属性2、文件设置3、备份模式4、查看收缩配置5、查看收缩选项 二、编写作业计划1、选择新建作业2、常规配置3、步骤4、输入内容5、脚本详解6、新建计划7、输入名称、选择执行时间8、查看测试9、查看测试结果 一、…

重庆网上商城网站建设公司wordpress加入ai

机房作为单位的核心部门&#xff0c;由计算机、服务器、网络设备、存储设备等关键设备组成&#xff0c;智能化计算机机房这个概念在各个领域中&#xff0c;已经占据了很重要的地位&#xff0c;伴随着国家大力倡导的&#xff0c;东数西算&#xff0c;数字经济、云计算、5G大数据…

完成公司门户网站建设wordpress适合

react之基于reduxjs/toolkit使用react-redux 一、配置基础环境二、使用React Toolkit 创建 counterStore三、为React注入store四、React组件使用store中的数据五、实现效果六、提交action传递参数七、异步状态操作 一、配置基础环境 1.使用cra快速创建一个react项目 npx crea…

内部网站如何建设广东专业做网站排名哪家好

SiR-NHS酯**(源自星戈瑞的花菁染料)**染料的偶联物通常被用于细胞过程的定量分析&#xff0c;这些偶联物是通过将SiR-NHS酯染料与特定的生物分子或分子结构结合而制备的。这些偶联物可用于定量分析细胞内的不同过程&#xff0c;例如蛋白质的定位、分布、表达水平等。以下是一些…

wordpress站点链接打不开网址汽车网站cms

最近硅谷曝出一份54页的内部文件&#xff0c;揭露了去年OpenAI宫斗&#xff0c;导致Altman&#xff08;奥特曼&#xff09;差点离职的神秘项目——Q-Star&#xff08;神秘代号Q*&#xff09;。 根据该文件显示&#xff0c;Q-Star多模态大模型拥有125万亿个参数&#xff0c;比现…

wordpress 更改目录seo外推上排名

使用金智易表通挂接外部数据,快速建设查询类服务,本次构建学生欠费数据查询,共有3块设计,规划如下: 1、欠费明细查询:学校领导和财务处等部门可查询全校欠费学生明细数据;各二级学院教职工可查询本二级学院欠费学生明细数据。 2、大数据统计报表:从应收总额、欠费总额…

英文网站建设 江门织梦仿非织梦网站

最近小编有收到一些用户问“光引擎、光模块、光器件之间的关系和区别&#xff1f;”&#xff0c;众所周知光通信技术一直在不断演进&#xff0c;为满足不断增长的数据传输需求提供了强大的解决方案。而光通信系统中&#xff0c;光引擎、光模块和光器件是关键的组成部分&#xf…

专业网站建设费用百度在线咨询

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用: requests >>> pip install requests re 第三方模块安装方法&#xff1a; win R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速…