Windows下增强版任务管理器
曾想过哪个程序打开了特定的文件或目录? 现在可以了解了。 进程资源管理器 显示有关哪些句柄和 DLL 进程已打开或加载的信息。
进程资源管理器显示由两个子窗口组成。 顶部窗口始终显示当前活动进程的列表,包括其所属帐户的名称,而底部窗口中显示的信息取决于 进程资源管理器 所处模式:如果它处于句柄模式,你将看到顶部窗口中选择的进程已打开的句柄;如果 进程资源管理器 处于 DLL 模式,你将看到进程已加载的 DLL 和内存映射文件。 进程资源管理器 还具有强大的搜索功能,可快速显示哪些进程打开了特定的句柄或加载了 DLL。
进程资源管理器的独特功能可用于跟踪 DLL 版本问题或处理泄漏,并提供 Windows 和应用程序工作方式的见解。
Windows下用于生成Dump文件的工具
此命令行实用工具旨在捕获其他情况下难以隔离和重现 CPU 峰值的进程转储。 它还充当常规进程转储创建实用工具,还可以在进程具有挂起窗口或未经处理的异常时监视和生成进程转储。
C++(Qt)软件崩溃调试-学会使用ProcDump.7z
这里是HTML版本的,支持GIF动态图
如果想要PDF版本的看这里https://download.csdn.net/download/qq_43627907/87647326
1. 之前用过的方法DbgHelp、qBreakpad生成Dump、Linux下配置ulimit -c unlimited生成core的方式功能都比较单一,并且需要配置环境,在程序中调用库,使用较为复杂。
2. 而ProcDump 使用非常简单,不需要配置环境,不需要修改代码,将程序下载到本地后,通过命令行设置监听条件、需要监听的程序,然后就可以在条件满足或者目标程序崩溃时快速生成进程转储文件。
3. 在Windows中还可以为MinGW编译的程序生成dump文件,这是之前的几种方法不支持的。
4. 并且procdump和之前的几种捕获dump/core的方式并不冲突,可以一起使用。
C++(Qt)软件崩溃调试-学会使用ProcDump(5)20230403.pdf
1. 之前用过的方法DbgHelp、qBreakpad生成Dump、Linux下配置ulimit -c unlimited生成core的方式功能都比较单一,并且需要配置环境,在程序中调用库,使用较为复杂。
2. 而ProcDump 使用非常简单,不需要配置环境,不需要修改代码,将程序下载到本地后,通过命令行设置监听条件、需要监听的程序,然后就可以在条件满足或者目标程序崩溃时快速生成进程转储文件。
3. 在Windows中还可以为MinGW编译的程序生成dump文件,这是之前的几种方法不支持的。
4. 并且procdump和之前的几种捕获dump/core的方式并不冲突,可以一起使用。
C++(Qt)软件崩溃调试-学会使用ProcDump (5)20230402.pdf
1. 之前用过的方法DbgHelp、qBreakpad生成Dump、Linux下配置ulimit -c unlimited生成core的方式功能都比较单一,并且需要配置环境,在程序中调用库,使用较为复杂。
2. 而ProcDump 使用非常简单,不需要配置环境,不需要修改代码,将程序下载到本地后,通过命令行设置监听条件、需要监听的程序,然后就可以在条件满足或者目标程序崩溃时快速生成进程转储文件。
3. 在Windows中还可以为MinGW编译的程序生成dump文件,这是之前的几种方法不支持的。
4. 并且procdump和之前的几种捕获dump/core的方式并不冲突,可以一起使用。
C++(Qt)软件崩溃调试-编译器及编译参数学习(4).pdf
在学习C++软件调试之前,了解编译器参数是非常重要的。因为编译器参数决定了程序编译的行为,包括编译器如何处理源代码、如何生成目标代码、如何链接库文件等等。
如果不了解编译器参数,可能会导致以下问题:
1. 编译错误:由于编译器参数的错误使用,可能导致编译错误,导致程序无法编译通过。
2. 目标代码错误:由于编译器参数的错误使用,可能导致生成的目标代码出现错误,导致程序无法正常运行。
3. 性能问题:编译器参数的不合理使用,可能导致程序性能下降。
4. 调试困难:由于编译器参数的错误使用,可能导致生成的目标代码缺少调试信息,导致调试过程困难。
因此,学习编译器参数可以帮助我们更好地理解和掌握C++程序的编译过程,更好地解决编译和调试过程中的问题,提高程序的性能和可维护性。
C++(Qt)软件崩溃调试-编译器及编译参数学习(4)
在学习C++软件调试之前,了解编译器参数是非常重要的。因为编译器参数决定了程序编译的行为,包括编译器如何处理源代码、如何生成目标代码、如何链接库文件等等。
如果不了解编译器参数,可能会导致以下问题:
1. 编译错误:由于编译器参数的错误使用,可能导致编译错误,导致程序无法编译通过。
2. 目标代码错误:由于编译器参数的错误使用,可能导致生成的目标代码出现错误,导致程序无法正常运行。
3. 性能问题:编译器参数的不合理使用,可能导致程序性能下降。
4. 调试困难:由于编译器参数的错误使用,可能导致生成的目标代码缺少调试信息,导致调试过程困难。
因此,学习编译器参数可以帮助我们更好地理解和掌握C++程序的编译过程,更好地解决编译和调试过程中的问题,提高程序的性能和可维护性。
linux下C++和Qt生成和调试Core文件(3)
Core文件是在程序崩溃或异常终止时由操作系统生成的一个二进制文件,它包含了进程在崩溃前的内存映像。Core文件的作用是帮助程序员分析程序崩溃的原因,进行程序调试。
当程序崩溃时,Core文件中存储了进程的堆栈、寄存器、内存等信息。程序员可以使用调试工具如GDB来分析Core文件,以确定程序崩溃的原因。通过分析Core文件,程序员可以了解程序在崩溃前发生的情况,包括变量的值,函数调用的堆栈信息等,从而找到程序中的错误。
Core文件还可用于恢复程序状态。如果程序在处理大量数据时崩溃,程序员可以使用Core文件来恢复程序状态,从崩溃点开始进行调试,以便更快地找到问题并修复它。
总之,Core文件是程序调试和故障排除中的重要工具,可以帮助程序员快速定位并解决程序中的错误。
MSVC2017-64编译的QCefView库文件,可下载直接使用
MSVC2017-64编译的QCefView库文件,可下载直接使用;
包含Release和Debug版本,示例程序。
Qt-文件路径使用方式和注意事项
* 在程序开发中我们会经常使用到路径功能,例如:读取`./`路径下的配置文件,将日志文件、运行数据保存到当前路径,将视频文件保存到系统的视频文件夹下等;
* 路径分为相对路径、绝对路径;
* 在Windows下文件/文件夹又有实际路径,快捷方式路径;
* 在Linux下文件/文件夹又有实际路径,软/硬链接路径;
* 程序运行方式有Qt编译运行,双击可执行程序运行,双击快捷方式运行,命令行`./`运行等;
* 这些不同的组合就会导致使用的路径存在不同的情况,也决定了你写的程序能不能正常的运行,所以我就整理了一下Qt中使用路径的方式和注意事项,避免以后程序出现问题。
* 实际开发中使用相对路径不是很安全,使用绝对路径又由于不同的电脑中路径不一定相同,所以最好的方式是将相对路径根据系统环境不同、运行方式不同转为绝对路径,或者使用系统中的默认路径(例如图片/视频/文件/下载/用户)。
Qt全局鼠标、键盘事件监听器库
使用Qt封装的支持Windows、Linux的跨平台全局鼠标、键盘事件监听器库
qBreakpad 崩溃报告工具
包含pdf版本说明手册、breakpad源码、linux-syscall-support-master源码、qBreakpad源码、Qt+MSVC2017-64编译后的qBreakpad模块
WIndows下超详细的QtMqtt编译配置教程
WIndows下超详细的QtMqtt编译配置教程,包含了QtMqtt源码下载、编译配置、QtMqtt帮助手册生成配置。
QSS样式表入门练习Demo.pdf
超详细的Qss入门练习Demo,包含了效果图和实现样式表;
[可看博客](https://blog.csdn.net/qq_43627907/article/details/125677496)
Qt-OpenCV-MinGW编译配置
Windows下使用MinGW编译配置Qt-OpenCV开发环境
Windows10系统中使用mingw73_64编译的OpenCV开发包,Qt版本V5.12.12,下载解压就可以使用。
Windows10系统中使用mingw73_64编译的OpenCV开发包,Qt版本V5.12.12,下载解压就可以使用。
MySql开发包-连接器/C
Qt编译MySql驱动时需要使用到的MySql动态库开发包,无需安装,只需要解压就可以使用,不需要安装几百兆的MySql。
版本V6.1.11
Qt使用mingw73_64编译器编译的MySql驱动动态库
Qt版本:5.12.12
编译器版本:MinGW73-64
说明:已经编译好的MySql驱动动态库,包含libqsqlmysql.a、libqsqlmysqld.a、qsqlmysql.dll、qsqlmysqld.dll四个文件;
使用方式:将这四个文件复制到D:\Qt\Qt5.12.12\5.12.12\mingw73_64\plugins\sqldrivers路径下即可(注意这是我的Qt安装路径);
编译方式:https://blog.csdn.net/qq_43627907/article/details/124621005?spm=1001.2014.3001.5501
ubuntu18.04编译qt5.14.2源码
ubuntu18.04编译qt5.14.2源码
linux打包Qt程序工具包
包含下列文件
appimagetool-aarch64
appimagetool-x86_64
fuse-3.16.2.tar
linuxdeploy-aarch64
linuxdeploy-plugin-appimage-x86_64
linuxdeploy-plugin-qt-aarch64
linuxdeploy-plugin-qt-x86_64
linuxdeployqt-continuous
linuxdeployqt-continuous-x86_64
linuxdeploy-x86_64
patchelf-0.18.0-aarch64.tar
patchelf-0.18.0-x86_64
runtime-aarch64
runtime-x86_64
linux下Qt程序部署教程.pdf
C++(Qt)软件调试-内存分析工具Heob(26)相关资源
包含PDF格式文档
markdown格式文档
使用到的工具
C++(Qt)软件调试-内存调试器Dr.Memory(21)
Dr. Memory 是一种开源内存监控工具,能够识别与**内存相关**的编程错误。例如
- 内存泄漏检测
- 内存越界检测
- 重复释放内存
- 空指针、野指针检测
- 堆栈溢出检测
- 内存分配和释放跟踪
- (在 Windows 上)句柄泄漏检测
- GDI API 使用错误以及访问未保留的线程本地存储槽
在性能上Dr. Memory 比包括 Valgrind 在内的同类工具更快。(有时候还是有点慢)
本文会讲解如何使用Dr.Memory以及在Qt Creator和Visual Studio中集成Dr.Memory。
C++(Qt)软件调试-断点高级用法(20)
断点是调试程序时常用的工具之一,它允许开发人员暂停程序的执行,以便检查程序的状态。
<mark>除了基本的断点设置外,还有许多高级用法可以让调试过程更加高效和精确。<
以下是使用断点的一些高级技巧,包括条件断点、忽略断点、一次性断点、日志断点、异常断点、函数入口断点以及断点的管理和优化等。
本文中会详细说明在VS Code、Visual Studio、Qt Creator这三种IDE中断点的高级用法。
注意:可能调试工具不同,支持的断点有一些区别。
Qt-qrencode生成、显示二维码控件
将qrencode使用Qt封装为一个生成、显示二维码的控件;
支持使用QPainter绘制显示二维码;
可通过函数接口返回生成的二维码QImage;
可通过调用函数将生成的二维码保存到指定路径;
支持使用源码嵌入工程(更好的跨平台、支持各种编译器);
支持使用编译好的静态库(MSVC2017-64);
LLVM-18.1.4-win64安装包 和clang-format配置
LLVM-18.1.4-win64安装包 和clang-format配置
C++参考手册使用说明
支持html、chm、qch、dep四种格式的C++离线参考手册,非常便于使用。
C++(Qt)软件调试-静态分析工具clang-tidy(18)
C++(Qt)软件调试-静态分析工具clang-tidy(18)
最新版WinDbg离线安装包
最新版WinDbg离线安装包
C++(Qt)软件调试-线程死锁调试(15)
死锁是一种情况,其中两个或多个线程(或进程)相互等待对方释放资源,导致它们都无法继续执行。这是一种非常令人头疼的问题,因为它可以导致程序挂起,无法继续运行。
本文中会详细讲述linux、Windows下调试C++线程死锁、Qt线程死锁的方式。
C++(Qt)软件调试-GCC编译参数学习-程序检测(13)
在前面学习了C++常用编译器(MSVC、GCC、MinGW)的一些常用的编译器参数,主要是用于【预处理】、【编译】、【优化】、【调试】等方面的选项/参数,有助于我们优化程序性能或者调试软件bug;
而我们常说的编译器其实并不是一个软件,而是一套强大的编译器工具集。
在本章内会学习GCC编译器的【警告选项】、【程序检测选项】,从静态、动态两方面检测、调试我们的程序,提高软件质量,减少bug数量。
spdlog入门教程(1)
Qt使用spdlog示例代码,包含编译好的spdlog库;
使用的编译器为msvc2017-64
C++(Qt)软件调试-使用drmingw进行调试(10)20230410.pdf
- Dr.MinGW是一个实时(JIT)调试器,使用命令行运行。
- 当应用程序抛出未经处理的异常时,Dr.MinGW会将自己连接到应用程序,并使用可用的调试信息收集有关异常的信息。
- Dr.MinGW可以读取由GUN C/C++编译器(Linux 下GCC、Windows下MinGW)生成的DWARF格式的调试信息,以及由Microsoft Visual C++编译器生成的PDB文件中的调试信息。它依赖于DbgHelp库来解析由Microsoft工具编译的模块中的符号。
- 解析符号和转储堆栈回溯的功能是以DLL的形式提供的,因此它可以嵌入到您的应用程序/工具中。
C++(Qt)软件调试-Qt编译优化和生成调试信息(9)20230409.pdf
通过查看Qt编译生成的Makefile文件可以学习到Qt内部对不同编译模式做了哪些工作;
Qt默认的三种编译模式基本可以适用于大部分开发调试的场景;
当我们遇见特殊的问题时就需要手动修改编译器选项,在程序编译时选择合适的优化参数和生成调试信息参数,在运行性能、程序大小、调试方便三个方向进行权衡利弊。
C++(Qt)软件调试-验证GCC编译优化和生成调试信息(8)20230408.pdf
我们可以通过学习GCC编译器参数,在程序编译时选择合适的优化参数和生成调试信息参数,在运行性能、程序大小、调试方便三个方向进行权衡利弊。
例如在不需要考虑性能时可以完全关闭优化,生成尽可能多的调试信息,以方便调试;
而有些程序运行需要一定的性能,就可以选择开启一定较低级别的优化。
C++(Qt)软件调试-编译器及编译参数学习(4)V1.0.0.pdf
在学习C++软件调试之前,了解编译器参数是非常重要的。因为编译器参数决定了程序编译的行为,包括编译器如何处理源代码、如何生成目标代码、如何链接库文件等等。
如果不了解编译器参数,可能会导致以下问题:
1. 编译错误:由于编译器参数的错误使用,可能导致编译错误,导致程序无法编译通过。
2. 目标代码错误:由于编译器参数的错误使用,可能导致生成的目标代码出现错误,导致程序无法正常运行。
3. 性能问题:编译器参数的不合理使用,可能导致程序性能下降。
4. 调试困难:由于编译器参数的错误使用,可能导致生成的目标代码缺少调试信息,导致调试过程困难。
因此,学习编译器参数可以帮助我们更好地理解和掌握C++程序的编译过程,更好地解决编译和调试过程中的问题,提高程序的性能和可维护性。