c++软件异常排查从入门到精通系列汇总

dvlinker dvlinker     2022-12-10     344

关键词:

🚀前言

本文是C++软件异常排查从入门到精通系列教程专栏的导航贴(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)。

专栏介绍:根据近几年排查软件异常的实践与经验,系统地讲解了C++软件异常常见原因与常用排查方法,以图文并茂的方式给出具体的分析实例,带领大家逐步掌握C++软件异常排查的相关技术与要领,适合基础进阶和想做技术提升的相关C++开发人员!

专栏适用人群:C++软件开发人员。


文章还在持续更新 ing…
 
如果文章对您有用,请点点,点点关注,点点收藏,也可以订阅专栏,您的支持是我前进的最大动力!
 
Thanks!Thanks!Thanks!


🔰 文章列表


专栏文章分以下几个部分来展开:
📢 概述篇:系统地总结了引发C++软件异常的常见原因,并给出了排查异常问题的常用方法。然后详细讲述了排查C++软件异常所需要掌握的汇编语言基础知识。根据多年的开发调试经验,分享了一些Visual Studio高效的调试手段与技巧。
📢 常用工具篇:详细地介绍了SPY++、Dependency Walker、GDIView、Process Explorer、Prcoess Monitor、API Monitor、Windbg和IDA等常用软件分析工具的使用,并给出详细的工具分析实例。
📢 异常分析基础知识篇:详细讲解了C++程序的五大内存分区、C++函数调用调用的栈分布、函数调用堆栈的栈回溯原理、C++虚函数调用的汇编代码解读、函数调用约定等与异常排查相关的基础内容。
📢 调试器Windbg使用篇:介绍了Windbg调试器及其常用命令,并详细讲解了如何使用Windbg去静态分析dump文件、如何使用Windbg进行动态调试。
📢 程序启动异常分析篇:以实际项目中遇到的问题实例,详细讲述C++程序启动异常时的分析方法。
📢 异常分析实例篇:以实际项目中遇到的C++软件异常实例为主线,详细讲述这些C++软件异常实例的完整分析与解决过程。


📚Part1 概述


⭐️第1章:C++软件异常分析概述

功能介绍:本文概要性地讲述了C++软件异常的分类以及常用的排查方法。

⭐️第2章:C++软件异常的常见原因分析与总结

功能介绍:本文根据近几年排查C++软件异常的实践经历与实战经验,系统地总结出引发C++软件异常的常见原因,给大家提供借鉴或参考。

⭐️第3章:排查C++软件异常的常见思路与方法

功能介绍:本文系统地讲述了排查C++软件异常的常用思路与方法。

⭐️第4章:分析C++软件异常需要掌握的汇编知识汇总

功能介绍:本文详细地讲述了排查C++软件异常时所要了解及掌握的一些汇编方面的基本知识与要点。

⭐️第5章:Visual Studio高效调试手段与技巧总结

功能介绍:本文根据多年的Visual Studio使用经验,带着大家逐一认识并掌握Visual Studio多种实用的调试方法和技巧,以帮助大家去高效、快速地解决开发过程中遇到的多种问题。

⭐️第6章:Visual Studio调试方式详解

功能介绍:本文详细讲述了Visual Studio 3种常用的调试方式:Debug下调试、Release下调试及附加调试。

⭐️第7章:Windows和Linux下排查C++软件异常的常用调试器与内存检测工具详细介绍

功能介绍:本文详细讲述Windows和Linux两平台下排查C++软件异常的常用调试器与内存检测工具。

⭐️第8章:内存越界一定会导致程序崩溃吗?详解内存越界

功能介绍:本文详细解释了内存越界不一定导致内存越界的问题,全面介绍了C++内存越界的相关内容。


📚Part2 常用分析工具篇


⭐️第9章:Windows开发值得推荐的十大软件分析工具

功能介绍:本文详细讲述在Windows C++软件的日常开发和维护的过程中用到的一些常用工具,以辅助分析和解决我们遇到的多种软件异常问题。

⭐️第10章:Windbg调试工具使用详解(分析工具)

功能介绍:本文详细介绍Windows调试工具Windbg的使用。

⭐️第11章:IDA反汇编工具使用详解(分析工具)

功能介绍:本文详细介绍反汇编工具IDA Pro的使用。

⭐️第12章:使用GDIView工具排查GDI对象泄漏问题(分析工具)

功能介绍:本文结合实际项目中的问题实例,讲解如何使用GDIView工具排查GDI对象泄漏问题。

⭐️第13章:使用Dependency Walker和dumpbin工具定位C++软件启动时找不到接口的报错问题(分析工具)

功能介绍:本文详细介绍如何使用Dependency Walker和dumpbin工具定位C++软件启动时找不到接口的报错问题。

⭐️第14章:使用API Monitor监测到目标程序对系统API函数的调用(分析工具)

功能介绍:本文通过一个具体的问题实例讲述如何使用API Monitor工具。

⭐️第15章:使用Process Monitor工具监测进程对注册表和文件的操作(分析工具)

功能介绍:本文详细介绍如何使用Process Monitor工具监测进程对注册表和文件的操作活动,并给出了对应的监测范例。

⭐️第16章:使用Dependency Walker和Process Explorer排查软件release版本发布问题(常用工具)

功能介绍:本文详细介绍使用Dependency Walker和Process Explorer排查软件release版本发布问题。

⭐️第17章:使用Process Explorer和Dependency Walker定位dll库动态启动失败的问题(常用分析工具)

功能介绍:本文详细介绍使用Process Explorer和Dependency Walker定位dll库动态启动失败的问题。


📚Part3 异常分析基础知识篇


⭐️第18章:实例详解C++程序的五大内存分区

功能介绍:本文详细讲述C++程序在运行时的5大内存分区。

⭐️第19章:C++函数调用栈分布详解

功能介绍:本文详细讲述C++函数调用时的栈分布情况。

⭐️第20章:C++栈回溯原理

功能介绍:本文详细讲述C++函数调用堆栈的回溯原理。

⭐️第21章:几秒读懂C++虚函数调用的汇编代码实现

功能介绍:本文详细讲述C++虚函数调用过程的汇编代码实现,以帮助大家了解虚函数调用的实现机制。

⭐️第22章:C/C++函数的调用约定详解

功能介绍:本文详细讲述C/C++函数调用约定相关的内容。


📚Part4 Windbg使用篇


⭐️第23章:Windbg调试工具介绍

功能介绍:本文详细介绍一下Windbg的相关内容。

⭐️第24章:Windbg常用命令详解

功能介绍:本文详细介绍一下Windbg的常用命令。

⭐️第25章:pdb符号库文件详解

功能介绍:本文详细讲述了pdb符号库文件相关的内容。

⭐️第26章:使用Windbg去静态分析dump文件的完整过程介绍

功能介绍:本文通过实例来详细讲述如何使用Windbg去静态分析dump文件。

⭐️第27章:通过Windbg动态调试去捕获C++软件异常的完整过程介绍

功能介绍:本文通过实例来详细讲述如何使用Windbg进行动态调试。


📚Part5 程序启动异常分析篇


⭐️第28章:C++程序安装包被病毒篡改导致启动报错

功能介绍:本文讲述C++程序安装包被病毒篡改导致启动报错问题的排查过程。

⭐️第29章:C++程序启动时报“0xc0000022”无法启动的错误

功能介绍:360安全卫士将dll库隔离后,导致C++程序启动时报“0xc0000022”无法启动的错误,本文将讲述整个问题的排查过程。

⭐️第30章:C++程序启动时报“R6030 CRT not initialized”错误

功能介绍:SPY++工具注入到C++程序的进程中,导致程序启动时报“R6030 CRT not initialized”错误,本文将讲解该问题的排查过程。

⭐️第31章:C++程序启动时报“0xC000007B”无法启动的问题排查

功能介绍:本文详细讲述C++程序启动时报“0xC000007B”错误的完整排查过程,并对相关的细节点进行了总结。


📚Part6 异常实例分析篇


⭐️第32章:使用Clumsy和Process Explorer定位软件高CPU占用问题

功能介绍:使用弱网模拟工具Clumsy和进程查看工具Process Explorer定位软件高CPU占用问题。

⭐️第33章:使用Process Explorer和Dependency Walker定位dll库动态启动失败的问题

功能介绍:使用进程查看工具Process Explorer和依赖关系查看器Dependency Walker定位dll库动态启动失败的问题。

⭐️第34章:使用Windbg定位Windows C++程序中的内存泄露

功能介绍:本文详细介绍如何使用Windbg定位Windows C++程序中的内存泄露。

⭐️第35章:排查软件启动时访问了0xcdcdcdcd内存地址导致内存访问违例的崩溃

功能介绍:详细介绍软件启动时访问了0xcdcdcdcd内存地址,导致内存访问违例的崩溃问题的排查过程。

⭐️第36章:排查软件关闭时访问了0xfeeefeee内存地址导致内存访问违例的崩溃

功能介绍:详细介绍软件关闭时访问了0xfeeefeee内存地址,导致内存访问违例崩溃问题的排查过程。

⭐️第37章:使用windbg分析dump文件,排查模态框返回时的崩溃问题

功能介绍:详细讲述使用windbg分析dump文件,排查模态框返回时的崩溃问题。

⭐️第38章:将Windbg附加到软件进程上排查异常闪退的实例分析

功能介绍:使用Windbg和Process Explorer排查因为内存泄漏导致的软件异常闪退问题。

⭐️第39章:C++程序运行过程中发生异常闪退,很有可能是这三个原因导致的

功能介绍:详细讲述三种引起C++程序运行过程中发生异常闪退常见原因。

⭐️第40章:使用Windbg和IDA分析给被调用函数的std::string类型参数传递了空指针引发的崩溃

功能介绍:使用Windbg和IDA分析给被调用函数的std::string类型参数传递了空指针引发的崩溃。

⭐️第41章:消息id重复引发的内存读取异常问题

功能介绍:本文详细介绍了使用Windbg分析因为消息id重复引发的内存读取异常问题。

⭐️第42章:巧用Visual Studio中的数据断点去排查C++内存越界问题

功能介绍:本文详细介绍如何使用Visual Studio中的数据断点去排查C++软件中的内存越界问题。

⭐️第43章:通过查看Windbg中的变量值去定位C++软件异常问题

功能介绍:本文详细讲述如何通过查看Windbg中的变量值去定位C++软件异常问题。

⭐️第44章:通过查看windbg中变量值去定位C++软件异常的又一典型案例分享

功能介绍:本文详细讲述了通过查看Windbg中的变量值去定位C++软件异常问题的又一典型案例的完整排查过程。

⭐️第45章:从可变参数函数的调用引发异常崩溃一例引发的一些思考

功能介绍:从可变参数函数的调用引发异常崩溃一例引发的一些思考。

⭐️第46章:引发0xC0000005内存违例几种可能原因分析

功能介绍:引发0xC0000005内存违例几种可能原因分析。

⭐️第47章:使用Windbg过程中两个使用细节分享

功能介绍:本文给大家分享使用Windbg分析问题过程中的两个细节问题。

⭐️第48章:使用开源库libyuv中替换开源汇编接口,解决汇编接口中的崩溃问题

功能介绍:使用开源库libyuv中替换开源汇编接口,解决汇编接口中的崩溃问题。

⭐️第49章:将string类对象中的内容格式化到字符串Buffer中时遇到的异常崩溃分析

功能介绍:本文讲述将string类对象中的内容格式化到字符串Buffer中时遇到的异常崩溃问题分析。

⭐️第50章:使用Windbg排查线程死锁引起的连不上服务器问题

功能介绍:将Windbg附加到目标进程上,排查线程死锁引起的连不上服务器问题。\\

⭐️第51章:通过查看Windbg中汇编指令及内存中的值去定位软件崩溃问题

功能介绍:详细讲解了windbg分析dump文件的一般步骤,然后介绍了通过查看Windbg中汇编指令及内存中的值去定位软件崩溃的实例。


📝 最后

C++软件异常排查从入门到精通系列教程专栏的文章都在这里啦。

文章会持续更新,大家有想要了解的功能点或者话题,可以在评论区告诉我!

喜欢本专栏的文章,可以点赞、订阅支持一下,你的肯定是对我最大的支持!

也可以收藏本文章,收藏后可以快速查看本专栏后续更新的一系列文章!

两例典型的c++软件异常排查实例分享(代码片段)

...块发生异常,导致进程崩溃2.1、问题分析2.2、第三方软件注入后引发软件异常的案例说明3、最后C++软件异常排查从入门到精通系列汇总https://blog.csdn.net/chenlycly/article/d 查看详情

通过查看windbg中变量值去定位c++软件异常的又一典型案例分享(代码片段)

...看windbg中变量的内存,最终定位问题5、总结C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...) https://blog.csdn.net/chenlycly/article/details/125529931    最近帮兄弟项目组排查一... 查看详情

windbg调试命令汇总

...#xff09;https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程( 查看详情

oracle从入门到精通系列-资料下载

...载一、Oracle官方文档二、Oracle安装包三、Linux安装包四、软件工具五、其他文档资料下载->返回总目录<-为了方便大家学习Oracle,博主在这里汇总一些能够用到的资料,包括Oracle安装包补丁和文档。以后会不定期更新,各位按... 查看详情

windows和linux下排查c++软件异常的常用调试器与内存检测工具详细介绍(代码片段)

...分析工具4.4、AddressSanitizer内存分析工具5、最后C++软件异常排查从入门到精通系列教程 查看详情

使用ida查看汇编代码上下文去辅助排查c++软件异常问题(代码片段)

...#xff09;https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/125529931    在分析C++软件异常崩... 查看详情

oracle从入门到精通系列讲解-总目录(代码片段)

总目录欢迎大家来到Lucifer三思而后行的《Oracle从入门到精通系列》,开始前博主先列出Oracle学习的大纲,同时这也可以作为大家学习Oracle的参考。下面蓝字都是传送门,点击进入即可:学前必读Oracle从入门到精通... 查看详情

ros从入门到精通系列(十八)-rostf(下)tf消息广播

参考wiki官网教程:Writingatf2broadcaster(C++)目录Createalearning_tf2packageHowtobroadcasttransformsTheCodeTheCodeExplained 查看详情

ros从入门到精通系列(十八)-rostf(下)tf消息广播

参考wiki官网教程:Writingatf2broadcaster(C++)目录Createalearning_tf2packageHowtobroadcasttransformsTheCodeTheCodeExplained 查看详情

ros从入门到精通系列(十八)-rostf(下)tf消息广播

参考wiki官网教程:Writingatf2broadcaster(C++)目录Createalearning_tf2packageHowtobroadcasttransformsTheCodeTheCodeExplained 查看详情

通过查看windbg中的变量值去定位c++软件异常问题(代码片段)

...不同的PC上会有不同的表现8、最后​​​​​​C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...) https 查看详情

opencv|opencv实战从入门到精通系列四--常用函数讲解

...0c;与你不见不散本文为学习笔记记录本文是《OpenCV实战从入门到精通》系列之第4篇:OpenCV|OpenCV实战从入门到精通系列一--OpenCV宏的讲解OpenCV|OpenCV实战从入门到精通系列二--OpenCV图像腐蚀OpenCV|OpenCV实战从入门到精通系列三--can 查看详情

es6从入门到精通系列学习笔记23篇(完结)

说明ES6从入门到精通系列(全23讲)学习笔记。可以自行搜索B站,有小马哥的视频学习。目录ES6从入门到精通#01:ES6介绍ES6从入门到精通#02:let和const命令ES6从入门到精通#03:模板字符串ES6从入门到精通#04&... 查看详情

es6从入门到精通系列学习笔记23篇(完结)

说明ES6从入门到精通系列(全23讲)学习笔记。可以自行搜索B站,有小马哥的视频学习。目录ES6从入门到精通#01:ES6介绍ES6从入门到精通#02:let和const命令ES6从入门到精通#03:模板字符串ES6从入门到精通#04&... 查看详情

ros从入门到精通系列--action

目录1.ROSAction概念1.1Action是ROSNode的通信方式之一2.自定义Action类型 查看详情

ros从入门到精通系列--action

目录1.ROSAction概念1.1Action是ROSNode的通信方式之一2.自定义Action类型 查看详情

mongodb从入门到精通mongdb系列学习宝典,想学mongodb小伙伴请进来

...MongoDB,在学习过程中总共编写了四十余篇博客。从mongodb软件下载到分片集群的搭建。从理论讲解到实例练习。现在把所有博客的内容做个简单目录,方便阅读的小伙伴查询。 一、入门 下载mongodb  [英文] 安装M... 查看详情

ros从入门到精通系列(十九)roscallbacksandspinning

 目录1.单线程Spinning和多线程Spinning1.1单线程Spinning2.多线程Spinning 查看详情