
C++软件调试
文章平均质量分 94
C++软件调试、Qt软件调试
mahuifa
人生从来不是规划出来的,而是一步步走出来的。找到自己喜欢的事,每天做那么一点点,时间一长,你就会看到自己的成长。
展开
-
C++(Qt)软件调试---Linux 性能分析器perf(29)
- `perf` 是一个功能强大的 Linux 性能分析工具,它能够帮助开发者深入了解程序的运行情况,识别性能瓶颈,从而进行优化。通过掌握 `perf` 的基本功能、主要命令、高级特性以及使用场景,开发者可以更加高效地进行性能分析和调优工作。> - perf是命令行工具,使用qtcreator、hotspot等工具可以在图形界面中调用perf进行分析,使用更加简单方便;原创 2025-03-01 22:14:19 · 814 阅读 · 0 评论 -
C++(Qt)软件调试---Windows 性能分析器WPA(28)
linux下的perf工具功能非常强大,但是可惜不支持Windows;而windows中VS也提供了类似的工具(性能探查器),windows除了vs自带的性能探查器外,还有更强大的WPA、WPR、xperf可用于性能分析。原创 2025-03-01 15:50:29 · 1318 阅读 · 0 评论 -
C++(Qt)软件调试---VS性能探查器(27)
使用vs自带的性能探查器分析排查C++程序的CPU性能、内存泄漏等问题。原创 2024-12-29 15:03:29 · 1315 阅读 · 0 评论 -
C++(Qt)软件调试---内存分析工具Heob(26)
绝对最全面最详细的Heob使用说明。(图文并茂)绝大部分的文章都说Heob是一个内存泄漏分析工具,其实Heob只是内存泄漏分析功能比较突出,实际上Heob可以分析很多内存问题。Heob是一个Windows下检测缓冲区溢出(野指针、空指针、内存越界、重复释放、异常捕获等)和内存泄漏的工具,集成到Qt Creator中,功能强大,简单容易上手。原创 2024-11-16 15:00:28 · 2573 阅读 · 0 评论 -
C++(Qt)软件调试---内存泄漏分析工具MTuner (25)
使用MTuner快速分析定位C++程序内存泄漏原创 2024-11-14 00:11:57 · 1638 阅读 · 0 评论 -
C++(Qt)软件调试---符号转换工具cv2pdb (24)
cv2pdb的三种使用方式,将mingw编译生成的程序导出pdb符号文件,便于调试。原创 2024-11-13 21:23:21 · 1359 阅读 · 4 评论 -
C++(Qt)软件调试---无法校验pdb时间戳(23)
使用两种方法解决windbg加载pdb符号表时时间校验失败问题。原创 2024-11-13 19:18:49 · 1185 阅读 · 0 评论 -
C++(Qt)软件调试---静态分析工具cppcheck(22)
Cppcheck是 C/C++ 代码的静态分析工具。它提供独特的代码分析来检测错误,并专注于检测未定义的行为和 危险的编码结构。目标是获得极少的误报。 它能够帮助开发者发现潜在的问题,如内存泄漏、数组越界、未初始化变量的使用等,从而提高代码的质量和安全性。原创 2024-11-12 21:18:38 · 1172 阅读 · 0 评论 -
C++(Qt)软件调试---内存调试器Dr.Memory(21)
Dr. Memory 是一种开源内存监控工具,能够识别与内存相关的编程错误。例如- 内存泄漏检测- 内存越界检测- 重复释放内存- 空指针、野指针检测- 堆栈溢出检测- 内存分配和释放跟踪- (在 Windows 上)句柄泄漏检测- GDI API 使用错误以及访问未保留的线程本地存储槽原创 2024-09-29 15:33:02 · 2006 阅读 · 2 评论 -
C++(Qt)软件调试---断点高级用法(20)
断点是调试程序时常用的工具之一,它允许开发人员暂停程序的执行,以便检查程序的状态。除了基本的断点设置外,还有许多高级用法可以让调试过程更加高效和精确。以下是使用断点的一些高级技巧,包括条件断点、忽略断点、一次性断点、日志断点、异常断点、函数入口断点以及断点的管理和优化等。本文中会详细说明在VS Code、Visual Studio、Qt Creator这三种IDE中断点的高级用法。注意:可能调试工具不同,支持的断点有一些区别。原创 2024-09-19 15:51:03 · 2920 阅读 · 0 评论 -
C++(Qt)软件调试---crashpad捕获崩溃(19)
Crashpad 是一个由 Google 开发的开源库,是 Google Breakpad 库的继任者。用于在应用程序崩溃时捕获和处理崩溃信息。原创 2024-04-25 00:40:57 · 4292 阅读 · 17 评论 -
C++(Qt)软件调试---静态分析工具clang-tidy(18)
现在很多人在开发中完全忽略了编译器、IDE的警告提示,这怎么可能写出稳定的程序。clang-tidy是一个由LLVM项目提供的开源工具,是一个静态分析工具,用于进行静态代码分析和代码质量改进。原创 2024-01-22 20:26:08 · 3726 阅读 · 1 评论 -
C++(Qt)软件调试---自动注册AeDebug(17)
快速自动将调试器注册到AeDebug原创 2023-11-08 22:50:22 · 565 阅读 · 0 评论 -
C++(Qt)软件调试---下载和安装最新版Windbg(16)
新版本的WinDbg有三种安装方式,分别是两种在线安装和一种下载安装包离线安装。(推荐使用离线安装)原创 2023-11-07 23:31:32 · 1409 阅读 · 0 评论 -
C++(Qt)软件调试---线程死锁调试(15)
死锁是一种情况,其中两个或多个线程(或进程)相互等待对方释放资源,导致它们都无法继续执行。这是一种非常令人头疼的问题,因为它可以导致程序挂起,无法继续运行。本文中会详细讲述linux、Windows下调试C++线程死锁、Qt线程死锁的方式。原创 2023-10-25 15:59:57 · 2303 阅读 · 0 评论 -
C++(Qt)软件调试---linux使用dmesg定位程序崩溃位置(14)
在我们日常开发中,经常会遇见程序崩溃退出的情况,一般在linux下我们可以通过生成core文件来进行调试,定位出现异常位置,但是如果我们忘记了生成core文件或者程序在用户机器上运行没有生成core,就无法通过调试core文件定位异常,这时就可以使用dmesg中的信息帮助调试。原创 2023-10-19 16:32:09 · 1891 阅读 · 0 评论 -
C++(Qt)软件调试---GCC编译参数学习-程序检测(13)
在前面学习了C++常用编译器(MSVC、GCC、MinGW)的一些常用的编译器参数,主要是用于【预处理】、【编译】、【优化】、【调试】等方面的选项/参数,有助于我们优化程序性能或者调试软件bug;而我们常说的编译器其实并不是一个软件,而是一套强大的编译器工具集。在本章内会学习GCC编译器的【警告选项】、【程序检测选项】,从静态、动态两方面检测、调试我们的程序,提高软件质量,减少bug数量。原创 2023-09-14 21:39:11 · 2377 阅读 · 2 评论 -
C++(Qt)软件调试---gdb调试入门用法(12)
学习GDB可以帮助程序员更好地调试程序,找到程序中的错误和问题,提高程序的质量和稳定性。在开发大型软件时,程序中可能存在许多错误和问题,这些问题可能会导致程序崩溃或者出现不可预期的行为。使用GDB可以帮助程序员更快地找到这些问题,并且提供一些调试工具来帮助程序员更好地理解程序的行为。原创 2023-08-16 21:12:08 · 4372 阅读 · 0 评论 -
C++(Qt)软件调试---将调试工具安装到AeDebug(11)
将多种调试工具安装到Aedebug作为事后调试器。原创 2023-08-09 21:03:34 · 784 阅读 · 0 评论 -
C++(Qt)软件调试---使用drmingw进行调试(10)
- drmingw是一个使用非常简单的调试工具,没有GDB、Windbg这些工具的复杂命令;- 可以支持调试MinGW、MSVC编译的程序;- 在重新退出时可以非常快速的显示调试结果,定位异常位置;- 但是使用简单就意味着对于一些复杂的bug调试可能就不那么好用了,但是还是值得一用。- drmingw还有一些其它用法,可以看github仓库里面的说明。原创 2023-04-10 11:11:35 · 1653 阅读 · 1 评论 -
C++(Qt)软件调试---qmake编译优化和生成调试信息(9)
通过查看Qt编译生成的Makefile文件可以学习到Qt内部对不同编译模式做了哪些工作;Qt默认的三种编译模式基本可以适用于大部分开发调试的场景;当我们遇见特殊的问题时就需要手动修改编译器选项,在程序编译时选择合适的优化参数和生成调试信息参数,在运行性能、程序大小、调试方便三个方向进行权衡利弊。例如在不需要考虑性能时可以完全关闭优化,生成尽可能多的调试信息,以方便调试;而有些程序运行需要一定的性能,就可以选择开启一定较低级别的优化。原创 2023-04-09 15:32:03 · 4274 阅读 · 0 评论 -
C++(Qt)软件调试---验证GCC编译优化和生成调试信息(8)
我们可以通过学习GCC编译器参数,在程序编译时选择合适的优化参数和生成调试信息参数,在运行性能、程序大小、调试方便三个方向进行权衡利弊。例如在不需要考虑性能时可以完全关闭优化,生成尽可能多的调试信息,以方便调试;而有些程序运行需要一定的性能,就可以选择开启一定较低级别的优化。文章中所述内容多有不足,欢迎一起交流学习。原创 2023-04-08 14:59:12 · 2037 阅读 · 1 评论 -
C++(Qt)软件调试---学会使用AeDebug(7)
AeDebug是Windows操作系统自带的一个调试工具,用于帮助开发人员进行应用程序的调试和错误定位。当应用程序发生异常或崩溃时,AeDebug可以**自动启动调试器**,并为开发人员提供相关的错误信息和调试信息,以帮助开发人员快速定位和解决问题。如果您是Windows应用程序的开发人员,建议您掌握AeDebug工具的使用方法,以便更好地进行应用程序的调试和错误定位。原创 2023-04-04 22:40:22 · 1109 阅读 · 0 评论 -
C++(Qt)软件调试---使用任务管理器导出Dump(6)
前面介绍了多种自动生成Dump文件的方法例如使用dbghelp.dll、qbreakpad、procdump等,都非常好用但是:1. 都需要配置环境或者修改代码;2. 在程序异常崩溃时或者满足一定条件时才能生成Dump;本文将介绍使用3款【任务管理器】来导出运行中程序的Dump文件,方法无优劣,只有适合不适合。原创 2023-04-04 22:33:28 · 754 阅读 · 0 评论 -
C++(Qt)软件调试---学会使用ProcDump(5)
ProcDump是一个由Microsoft Sysinternals开发的命令行小工具,用于在Linux、Windows系统上监视和生成进程转储文件。它可以监视进程在CPU使用率、内存占用、I/O操作等方面的性能,并在进程崩溃时自动生成转储文件,以便进行后续调试和分析。原创 2023-04-02 23:51:54 · 2351 阅读 · 1 评论 -
C++(Qt)软件调试---编译器及编译参数学习(4)
在学习C++软件调试之前,了解编译器参数是非常重要的。因为编译器参数决定了程序编译的行为,包括编译器如何处理源代码、如何生成目标代码、如何链接库文件等等。学习编译器参数可以帮助我们更好地理解和掌握C++程序的编译过程,更好地解决编译和调试过程中的问题,提高程序的性能和可维护性。原创 2023-04-01 22:53:53 · 3302 阅读 · 0 评论 -
C++(Qt)软件调试---linux下生成/调试Core文件(3)
Core文件是在程序崩溃或异常终止时由操作系统生成的一个二进制文件,它包含了进程在崩溃前的内存映像。Core文件的作用是帮助程序员分析程序崩溃的原因,进行程序调试。在本文中详细讲述了linux下C++/Qt如何生成Core文件和使用GDB调试Core文件,快速定位异常位置和异常原因。原创 2023-04-01 00:29:52 · 3067 阅读 · 2 评论 -
C++(Qt)软件调试---Qt使用qBreakpad定位崩溃位置(2)
Qt使用qBreakpad实现跨平台C++崩溃检测,在程序崩溃时快速的定位崩溃位置。原创 2022-08-30 15:13:46 · 6525 阅读 · 3 评论 -
C++(Qt)软件调试---Windows下Qt使用dump定位崩溃位置(1)
在C++/Qt程序崩溃时,往往很难找到崩溃的原因,如果是稳定复现的问题还好,但是多数情况遇见的问题是随机出现的,这时想要快速找到问题并解决就需要通过dump文件定位崩溃位置。原创 2022-04-06 23:35:03 · 11746 阅读 · 12 评论