码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++程序dll崩溃如何定位分析?


    程序猿小伙伴们都知道,linux系统下如果程序出现崩溃问题,通过设置可以生成core文件,然后开始一波犀利的gdb操作精准地找到问题所在,很是得心应手。那么问题来了,在windows操作系统下会有core文件在程序开小差的时候提供我们分析定位吗,我们有没有很好的手段可以定位问题呢?

    客户端崩溃:
    其实在windows平台也是可以在崩溃时候生成类似core文件的dump文件,我们可以通过调试dump文件来还原程序崩溃时的状态,调试工具我推荐windbg,屡试不爽,很好用。“Windbg是在windows平台下,强大的用户态和内核态调试工具。相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大。它的另外一个用途是可以用来分析dump文件”。

    如何让程序崩溃时候生成dump文件呢,这里需要我们在程序设计的时候添加dump文件生成代码,代码比较通用,度娘上也有很多种写法,这里我们就简单地贴下通用接口(见下图),我们在程序初始化的时候加载此接口就行。

    在有了dump文件后,我们如何分析呢,这里还需要保留我们在生成dll的时候产生的pdb文件,一一对应。debug版本会生成pdb文件,release版本默认不会生成pdb文件我们需要设置下vc、vs编译器,具体的设置不多讲一般都在工程-设置里面有debug选项勾选就行。

    安装windgb,可以通过win7.1sdk里自带的debug包进行安装dbg_x86.msi进行安装,安装成功后会出现windbg调试工具。

    当程序崩溃时,我们已经有dump文件,pdb文件,dll文件,我们简单介绍下怎么样用windgb工具来分析出错的代码行,首先需要配置Symbol path右击file->Symbol file path进行符号表路径设置,一般路径为:C:\Symbols;SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols 在c盘新建目录Sysmbols,把dll和pdb文件放到以及dump文件都放在这个目录下。

    设置sysmbol路径后,直接打开dump文件,右击“file-open crash dump”,选择生成的dump文件。这个时候windgb加载dump文件需要等待一会,加载完成后,在最下面的命令行窗口输入“!analyze -v”对文件进行分析,结果如下图所示,我们就可以精准的知道代码的哪一行会有问题。

  • 相关阅读:
    Ubuntu 安装MinGW32出现Unable to locate package mingw32找不到安装包的解决方法和思路
    Qt编写4K/8K大分辨率播放器(8K占用1%CPU)
    【Node.js】时钟案例---将一个网页分别拆分成css、html和js文件
    快速弄懂C++中的深拷贝和浅拷贝
    leetcode 817. 链表组件(java)
    Towards Interpretable Video Anomaly Detection 论文阅读
    RSA非对称加密算法中的密钥对生成与传输
    Spring-Cloud-Openfeign如何支持数据压缩?
    如何下载 Apache + PHP + Mysql 集成安装环境并结合内网穿透工具实现公网访问内网服务
    Linux和本地Windows如何互传文件(sz和rz指令)
  • 原文地址:https://blog.csdn.net/kyfvc/article/details/127993145
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号