C++(Qt)软件调试---将调试工具安装到AeDebug(11)

C++(Qt)软件调试—将调试工具安装到AeDebug(11)

文章目录

  • C++(Qt)软件调试---将调试工具安装到AeDebug(11)
    • 1、前言
      • 1.1 使用的调试工具
    • 2、调试器安装
      • 1.1 WinDbg
      • 1.2 procdump
      • 1.3 DrMinGW
      • 1.4 vsjitdebugger

更多精彩内容
👉个人内容分类汇总 👈
👉C++软件调试、异常定位 👈

1、前言

1.1 使用的调试工具

  • WinDbg
  • procdump
  • DrMinGW
  • vsjitdebugger

2、调试器安装

在本文中使用的都是64位调试器,如果需要使用32位调试器直接切换调试器就可以,使用方式是相同的。

1.1 WinDbg

  • 找到WinDbg路径;

    • C:\Program Files\Windows Kits\10\Debuggers\x64路径;
    • 或者使用Everything查找路径;
  • 使用管理员权限打开cmd,进入到WinDbg所在路径下;

    • cd C:\Program Files\Windows Kits\10\Debuggers\x64
  • 使用下列命令将WinDbg安装到AeDebug;

    • windbg.exe -I
  • 如下图所示就是权限不足安装失败,需要使用管理员权限打开cmd:

    在这里插入图片描述

  • 如下图所示就安装成功了:

    在这里插入图片描述

  • 打开注册表可发现64位AeDebug已经有WinDbg的指令了:

    在这里插入图片描述

  • 如图所示,在程序崩溃时会自动打开WinDbg进行调试:

    在这里插入图片描述

  • 使用WinDbg导出dump文件.dump /md E:\testCrash.dmp

    在这里插入图片描述

1.2 procdump

  • 下载procdump后,使用管理员权限打开cmd;

  • 使用下列命令安装procdump为事后调试器,在程序崩溃时自动在E:\dump文件夹下生成Full Dump文件;

    • D:\Procdump -ma -i E:\dump
  • 可使用下列命令卸载安装;

    • D:\Procdump -u
  • 如下图所示安装成功:

    在这里插入图片描述

  • 程序崩溃时自动生成dump文件:

    在这里插入图片描述

1.3 DrMinGW

  • 下载DrMinGW后,使用管理员权限打开cmd;

  • 使用下列命令安装drmingw为事后调试器,在程序崩溃时自动打开drmingw并定位到异常位置;

    • D:\drmingw\bin\drmingw.exe -i
  • 使用下列命令可用卸载安装:

    • D:\drmingw\bin\drmingw.exe -u
  • 安装成功如下图所示:

    在这里插入图片描述

  • 效果演示:

    在这里插入图片描述

1.4 vsjitdebugger

  • 打开Visual Studio;

  • 选择【调试】->【选项】->【调试】->【实时】,勾选三个复选框;

    在这里插入图片描述

  • 如果安装了其它事后调试器,会提示需要重启,直接重启就可以;

    在这里插入图片描述

  • Visual Studio重启后再次选择【调试】->【选项】->【调试】->【实时】,勾选三个复选框;

  • 打开注册表,查看AeDebug,可看出已经更新为使用vsjitdebugger进行调试了;

    在这里插入图片描述

  • 效果演示:

    在这里插入图片描述

  • 使用vsjitdebugger导出dump文件;

    • 选择【调试】->【将转储另存为】;

    在这里插入图片描述

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

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

相关文章

深入了解Linux运维的重要性与最佳实践

Linux作为开源操作系统的代表,在企业级环境中的应用越来越广泛。而在保障Linux系统的正常运行和管理方面,Linux运维显得尤为关键。本文将介绍Linux运维的重要性以及一些最佳实践,帮助读者更好地了解和掌握Linux系统的运维技巧。 首先&#xf…

OPENCV C++(十)gramm矫正+直方图均衡化

两者都是只对单通道使用,对多通道的话 就需要分离通道处理再合并通道 两种方法,第一个要运算次数太多了,第二个只需要查表 伽马矫正函数,这里用第二种方法,且写法有点高级 int gammaCorrection(cv::Mat srcMat, cv::…

Java【Spring】使用注解, 更简单的存储和获取 Bean

文章目录 前言一、存储 Bean1, 配置文件2, 五大类注解Bean 的命名规则 3, 方法注解Bean 的命名规则 二、获取 Bean1, 属性注入2, Setter 注入3, 构造方法注入4, Autowired 和 Resource 的区别5, 同一个类型的多个 Bean 注入问题 总结 前言 各位读者好, 我是小陈, 这是我的个人主…

【网络基础实战之路】实现RIP协议与OSPF协议间路由交流的实战详解

系列文章传送门: 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS:本要求基于…

FreeRTOS(任务通知)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、任务通知的概念 1、概念 2、发送通知给任务的方式 3、任务通知使用限制 二、任务通知的运行机制 三、任务通知的API函数 1、任务通知的数据结构 2、常用的API函数 3、函数x…

opencv实战项目 手势识别-实现尺寸缩放效果

手势识别系列文章目录 手势识别是一种人机交互技术,通过识别人的手势动作,从而实现对计算机、智能手机、智能电视等设备的操作和控制。 1. opencv实现手部追踪(定位手部关键点) 2.opencv实战项目 实现手势跟踪并返回位置信息&…

基于低代码和数字孪生技术的电力运维平台设计

电力能源服务商在为用能企业提供线上服务的时候,不可避免要面对用能企业的各种个性化需求。如果这些需求和想法都要靠平台厂家研发人员来实现,那在周期、成本、效果上都将是无法满足服务运营需要的,这也是目前很多线上能源云平台应用效果不理…

【状态模式】拯救if-else堆出来的屎山代码

前言 我想大家平时都在开发重都遇见过屎山代码,这些屎山代码一般都是由于复杂且庞大的if-else造成的,状态模式,是一种很好的优化屎山代码的设计模式,本文将采用两个业务场景的示例来讲解如何使用状态模式拯救屎山代码。 目录 前…

【Axure高保真原型】通过输入框动态控制环形图

今天和大家分享通过输入框动态控制环形图的原型模板,在输入框里维护项目数据,可以自动生成对应的环形图,鼠标移入对应扇形,可以查看对应数据。使用也非常方便,只需要修改输入框里的数据,或者复制粘贴文本&a…

简单记录牛客top101算法题(初级题C语言实现)BM17 二分查找 BM21 旋转数组的最小数字 BM23 二叉树的前序遍历

1. BM17 二分查找 要求:给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1。 输入&#xff1a…

【云原生】K8S存储卷:PV、PVC详解

目录 一、emptyDir存储卷二、hostPath存储卷三、nfs共享存储卷四、PVC 和 PV4.1 NFS使用PV和PVC4.2创建动态PV 一、emptyDir存储卷 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,ku…

UG NX二次开发(C++)-PK函数创建一条圆弧曲线

文章目录 1、前言2、创建一个项目3、添加头文件4、在do_it中添加创建圆曲线的源代码5、调用dll6、再创建一个长方体验证1、前言 采用PK进行UG NX二次开发,现在看到的文章很多是直接创建实体,然后在UG NX的视图区显示出来,对于创建圆曲线的文章不多,本文讲一下PK函数创建圆…

Git 代码分支规范

目的 俗话说:没有规矩,不成方圆。遵循一个好的规章制度能让你的工作事半功倍。同时也可以展现出你做事的认真的态度以及你的专业性,不会显得杂乱无章,管理困难。Git分支规范也是一样。当遵循了某种约定的Git分支,在代…

若依框架浅浅介绍

由若依官网所给介绍可知 1、文件结构介绍 在ruoyi-admin的pom.xml文件中引入了ruoyi-framework、ruoyi-quartz和ruoyi-generatior模块,在ruoyi-framework的pom.xml文件中引入了ruoyi-system模块。 2、技术栈介绍 前端:Vue、Element UI后端&#xff1a…

第1章:绪论

科学、技术、工程、应用 科学:是什么、为什么技术:怎么做工程:怎样做的多快好省应用:怎么使用 定义 机器学习:利用经验改善系统自身的性能。 研究 智能数据分析(数据分析算法) 典型的机器…

电脑ip地址怎么改 ip地址怎么改到别的城市

一、ip地址怎么改到别的城市 1.ip地址怎么改到别的城市,1、重启WIFI路由设备 一般手机或电脑在家或公司上网时都是接入到路由器的WIFI网络,再由路由器分配上网IP地址,如果要更换上网IP那么重启路由器设备后,路由器会向网络运营商进行宽带的重新拨号,此时手机或电脑设…

【【verilog 典型电路设计之加法器树乘法器】】

verilog 典型电路设计之加法器树乘法器 加法器树乘法器 加法器树乘法器的设计思想是“移位后加”,并且加法运算采用加法器树的形式。乘法运算的过程是,被乘数与乘数的每一位相乘并且乘以相应的权值,最后将所得的结果相加,便得到了…

selenium.webdriver Python爬虫教程

文章目录 selenium安装和使用 selenium安装和使用 pip install selenium 下载对应的浏览器驱动 实例化浏览器 from selenium import webdriverbrowser webdriver.Chrome()元素定位 控制浏览器

HTB-Keeper

HTB-Keeper 信息收集80端口 lnorgaardroot 信息收集 80端口 80主页给了一个跳转的链接 跟随链接后到了一个登陆界面。 尝试搜索默认密码。 通过账号root:password登录。不知道为什么我登陆了两次才成功。 通过搜索在Admin->Users->Select里面发现了用户信息。 lno…

WS2812B————动/静态显示

一,系统架构 二,芯片介绍 1.管脚说明 2.数据传输时间 3.时序波形 4.数据传输方法 5.常用电路连接 三,代码展示及说明 驱动模块 在驱动模块首先选择使用状态机,其中包括,空闲状态,复位清空状态&#xff0c…