排序
使用Dependency Walker和Process Explorer排查软件release版本发布问题(常用工具)
就今天使用第三方工具PeViewer.exe遇到的release版本发布问题,简单地讲一下如何使用Dependency Walker和Process Explorer这两个常用的软件。文中内容比较简单,旨在介绍工具如何使用,给新人...
C++程序启动时报“R6030 CRT not initialized”错误
在使用VS调试C++程序时,每次启动调试都弹出如下的提示:提示“R6030 CRT not initialized”,C++程序始终无法启动,也就没法进行代码的调试了。这太奇怪了,以前都没遇到过,CRT是C/C++的运行...
从可变参数函数的调用引发异常崩溃一例引发的一些思考
使用va_list、va_start、va_arg和va_end这组宏实现的可变参函数,是在运行时动态从函数调用堆栈中依次解析出传入的各个可变参数的(解析出可变参数的栈内存地址,读出可变参数的值(读出可变参...
使用开源库libyuv中替换开源汇编接口,解决汇编接口中的崩溃问题
目录1、概述2、初步分析3、查找相关库的pdb文件4、在windbg设置pdb文件路径,查看详细的函数调用堆栈,进一步分析5、解决办法有次软件在某台PC上运行发生崩溃,发现崩溃在纯汇编代码实现的函数...
排查软件关闭时访问了0xfeeefeee内存地址导致内存访问违例的崩溃
最近在使用duilib开源库实现图片查看工具软件ImageViewer,调试时发现,程序关闭时访问了0xfeeefeee内存地址,触发内存访问违例,导致了软件崩溃。本文分享一下这一问题的排查过程。1、问题描述...
引发0xC0000005内存违例几种可能原因分析
目录1、概述2、空指针访问3、已释放内存的访问4、内存越界5、总结 在日常的软件异常排查中,我们经常会遇到0xC0000005内存访问违例的异常。对于简单的异常,windbg分析dump文件,结...
C++程序启动时报“0xC000007B”无法启动的问题排查
目录1、问题描述2、启动时报缺少运行时库3、拷贝运行时库后,启动报0xC000007B错误4、尝试用Windbg启动exe,看Windbg能否捕捉到相关线索5、尝试到计算机管理中去查看系统应用程序日志,看是否有...
几秒读懂C++虚函数调用的汇编代码实现
多态是C++中最重要的特性之一,对虚函数的调用在C++代码中是随处可见的。虚函数(代码段地址)被存放在虚函数表中,调用虚函数的流程是这样子的:先获取虚函数表的首地址,然后根据目标虚函数在...
将string类对象中的内容格式化到字符串Buffer中时遇到的异常崩溃分析
目录1、概述2、初步分析3、进一步分析4、为啥将wstring类型格式化到字符串buffer中会崩溃呢?5、格式化函数如何从栈上解析出每个格式化符对应的变量内容的?6、总结我们在将变量中的数据格式化...
C++栈回溯原理(C++异常排查面试题)
我们用VS调试源代码或使用Windbg调试exe程序遇到异常时,调试器会中断下来,此时去查看函数调用堆栈基本就能找到引发异常的线索了。软件是执行到某一句汇编代码产生了异常,那么调试器如何通...
C++函数调用栈分布详解
作为C++开发人员,有必要来了解一下C++函数调用时的栈分布情况,对深入理解C++函数调用机制及汇编代码是很有好处的。在了解了函数调用的栈分布之后,才能搞懂函数调用堆栈回溯的原理。1、函数调...
使用Process Explorer和Dependency Walker定位dll库动态启动失败的问题(常用分析工具)
近日测试同事反馈,我们的C++客户端软件登录后显示一直连不上会议服务器,于是使用一些软件工具详细地分析了一下,最终发现是底层dll库版本不一致导致的。今天就分享一下这个问题的详细排...