排序
巧用Visual Studio中的数据断点去排查C++内存越界问题
目录1、概述2、异常实例描述3、是底层的dll模块发生了崩溃4、上层的m_dwConnectSID变量值被篡改,导致传给底层dll模块的函数参数有问题5、给m_dwConnectSID变量设置数据断点,排查出问题6、总结...
C++软件调试与异常排查从入门到精通系列汇总
🚀前言本文是C++软件调试与异常排查从入门到精通系列教程专栏的导航贴(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)。专栏介绍:根据近几年C++软件异常排查的实践与经验,系统地讲解了C+...
C++程序启动时报“0xC000007B”无法启动的问题排查
目录1、问题描述2、启动时报缺少运行时库3、拷贝运行时库后,启动报0xC000007B错误4、尝试用Windbg启动exe,看Windbg能否捕捉到相关线索5、尝试到计算机管理中去查看系统应用程序日志,看是否有...
从可变参数函数的调用引发异常崩溃一例引发的一些思考
使用va_list、va_start、va_arg和va_end这组宏实现的可变参函数,是在运行时动态从函数调用堆栈中依次解析出传入的各个可变参数的(解析出可变参数的栈内存地址,读出可变参数的值(读出可变参...
C++程序安装包被病毒篡改导致启动报错
目录1、到系统应用程序事件日志中查看相关日志信息2、安装包程序的图标有问题3、使用系统sxstrace.exe工具分析应用程序的并行配置异常信息4、使用beyond compare比较安装包二进制文件,找出了原...
排查C++软件异常的常见思路与方法(实战经验总结)
目录1、概述2、常见的异常排查思路与方法2.1、直接调试2.2、添加日志打印2.3、分块注释代码2.4、数据断点2.5、历史版本比对法2.6、Windbg静态分析dump文件2.7、Windbg动态调试2.8、使用IDA反汇...
Visual Studio高效调试手段与技巧总结(经验分享)
目录1、对0xCCCCCCCC、0xCDCDCDCD和0xFEEEFEEE等常见异常值的辨识度2、在Debug下遇到报错弹框,点击重试,查看函数调用堆栈3、调试时程序和调试器都发生了闪退,可以尝试到Output窗口中找线索4...
使用API Monitor监测到目标程序对系统API函数的调用(常用分析工具)
目录1、问题背景2、使用API Monitor工具监测目标软件对SystemParametersInfo接口的调用3、到MSDN上查看SystemParametersInfo API函数的说明,查看到关键参数的含义4、最后 我们多次在...
几秒读懂C++虚函数调用的汇编代码实现
多态是C++中最重要的特性之一,对虚函数的调用在C++代码中是随处可见的。虚函数(代码段地址)被存放在虚函数表中,调用虚函数的流程是这样子的:先获取虚函数表的首地址,然后根据目标虚函数在...
通过查看Windbg中的变量值去定位C++软件异常问题
目录1、概述2、如何在windbg中查看变量的值3、mini dump文件与全dump文件4、使用windbg初步分析5、查看变量的内存找到了线索,排查出问题6、解决办法7、为啥不同的PC上会有不同的表现8、最后我...
Visual Studio调试方式详解
目录1、概述2、Debug下的调试3、Release下的调试4、附加到进程调试5、总结 使用IDE调试代码是开发人员必须掌握的技能,是软件遇到问题时一个最直接的排查方式,今天我们就来讲一下使用Visual S...
C++软件异常的常见原因分析与总结(实战经验分享)
目录 1、概述 2、引发软件异常的常见原因 2.1、变量未初始化 2.2、死循环 2.3、内存越界 2.4、内存泄漏 2.5、空指针与野指针 2.6、内存访问违例 2.7、栈内存被当成堆内存去释放 2.8、线程栈...