【QT + Windows + DebugView 调试日志打印】

Qt调试神器qDebug:从入门到精通(附DebugView配置技巧) 本文全面解析Qt核心调试工具qDebug,从基础输出、流式操作、自定义类型格式化到日志分级管理。重点介绍了在Visual Studio环境中稳定捕获调试信息的配置技巧,并探讨如何构建生产级日志系统,帮助开发者打造高效的Qt调试工作流。 阅读详情

前言

有时候,会遇到一些不方便进行调试的场景,或者是在非调试模式下才会出现或更容易出现的问题,这个时候,日志打印就显得很必要了。

环境

  1. QT:5.15.2
  2. windows:win7及以上
  3. DebugView工具

调试日志打印

在QT中可以使用函数qInstallMessageHandler在main函数中注册日志信息打印函数,然后可以在打印函数中使用WinApi:OutputDebugString来将信息输出,并由DebugView接收并显示。所有采用QT自带打印函数的日志信息都会经过这个函数的处理,例如qDebug。 参考代码如下:

void myMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)
{
	QString msgType = "";
	switch (type)
	{
	case QtDebugMsg:
		msgType = "Debug: ";
		break;
	case QtInfoMsg:
		msgType = "Info: ";
		break;
	case QtWarningMsg:
		msgType = "Warning: ";
		break;
	case QtCriticalMsg:
		msgType = "Critical: ";
		break;
	case QtFatalMsg:
		msgType = "Fatal: ";
		break;
	}

	QString formatMsg = QTime::currentTime().toString() + "\t" + msgType + "\t" + msg + "\n";
	OutputDebugString(formatMsg.toStdWString().c_str());
}
qInstallMessageHandler(myMessageHandler);

DebugView

总结

也可以不用DebugView接收,转而在日志信息函数中将日志写入文件中保存。

Qt qDebug高级调试技巧:从流式输出到自定义日志格式 本文深入探讨了Qt qDebug的高级调试技巧,包括流式输出、自定义类型输出和日志格式化。通过实际案例展示了如何优雅地输出调试信息,重载<<运算符实现自定义类型输出,以及使用qSetMessagePattern打造专业级日志格式。这些技巧能显著提升Qt开发者的调试效率和代码可读性。 阅读详情

相关推荐

Qt调试技巧:利用CONFIG += console实现跨平台日志输出

本文详细介绍了Qt开发中利用CONFIG += console配置解决GUI程序静默崩溃问题的技巧。通过强制启用控制台窗口,开发者可以实时查看qDebug等日志输出,快速定位启动失败、DLL缺失等错误。文章还讲解了其跨平台原理、条件编译实现调试/发布分离,并提供了文件日志等进阶替代方案。

weixin_29233333的博客 375

DebugView在Vs + Qt 应用程序中的使用

vs+qt应用程序使用Debugview进行调试输出

一叶知秋的博客 714

Qt日志系统实战:从qInstallMessageHandler到生产级日志管理

在C++和Qt开发中,日志系统是程序可观测性的核心基础设施,它通过捕获、格式化和持久化运行时信息,为调试、监控和问题排查提供关键依据。其核心原理在于拦截和处理应用程序的输出流,通常涉及消息捕获、格式化、输出和管理等模块。一个健壮的日志系统不仅能提升开发调试效率,还能在生产环境中提供稳定的运行状态追踪能力,尤其适用于桌面应用、嵌入式系统和长期维护的中大型项目。本文聚焦于Qt框架下的日志系统实现,通过自定义消息处理器(qInstallMessageHandler)这一关键技术,深入探讨如何构建一个支持线程安全、

weixin_33806914的博客 330

Qt + DbgView : 将qDebug输出到DbgView或终端

Qt + DbgView

听我一言的博客 1105

Qt应用异常捕获与日志系统:构建C++桌面软件的“黑匣子”

在C++桌面应用开发中,异常处理和日志记录是保障软件稳定性的关键技术。异常捕获机制通过拦截程序运行时的崩溃信号(如访问违规、除零错误),生成包含堆栈、寄存器等关键信息的dump文件,为事后分析提供“现场快照”。日志系统则通过分级记录(调试、信息、警告、错误)程序运行轨迹,形成可追溯的操作流水。这两项技术的核心价值在于将问题排查从“盲人摸象”转变为“按图索骥”,极大缩短故障定位时间。在Qt框架开发的桌面应用、嵌入式HMI或工业控制软件等场景中,一套健壮的异常与日志系统能有效应对程序崩溃、界面卡死等常见问题。本

weixin_33742618的博客 354

spdlog:C++高性能日志库的工程实践与集成指南

在C++工程中,日志记录是不可或缺的基础设施。传统方式如printf或自封装的WriteLog,往往在多线程场景下面临性能瓶颈和串行混乱问题。spdlog作为一款开源的C++日志库,凭借其高效、线程安全、异步日志和灵活扩展等特性,成为替代重复造轮子的理想选择。它支持控制台、文件、轮转文件、多Logger管理及自定义Sink,同时保持轻量级,无复杂运行时依赖。文章从核心特性出发,介绍了环境准备、安装获取、基础与高级功能验证,并重点展示了在Visual Studio MFC项目中的集成步骤、接口封装以及批量日志

weixin_30416871的博客 335

dbgView的使用

1. 简介 debugview 是系统调试信息输出的捕获工具。 debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。 1.1OutputDebugString 通过OutputDebugString,在debug或release情况下都可以输出调试日志。 OutputDebugString的函数原型: voidOutputDebugString( LPCTSTRlpOutputString); 测试代码: #inclu...

www_dong的博客 3235

C++实战:从零构建Windows桌面取色工具ColorPicker

颜色拾取是图形界面开发、前端设计和图像处理中的基础且高频需求,其核心原理在于获取屏幕指定坐标的像素数据并进行颜色模型转换。在Windows平台上,通过调用GDI/GDI+等系统API,开发者可以深入理解屏幕捕获、设备上下文操作及RGB/HEX/HSL等颜色空间的转换算法,从而掌握底层GUI编程技术。这种技术不仅具有学习价值,更能直接应用于提升开发效率,例如为设计师和程序员定制轻量级效率工具。本文以ColorPicker-master项目为例,详细解析如何利用C++和Win32 API实现一个支持全局热键、实

weixin_33901641的博客 528

如何支持qt调试

第一步 安装Debugging Tools for Windows,安装T从微软官网下载即可 下载后安装,选择install,后面只选择Debugging Tools for Windows即可。 第二步 第一种:在安装qt时,很多人不习惯安装Tools下的内容,但是qt-debug功能的支持就在这里,如果是第一次安装qt或者修复可在这里勾选上Qt Creator 4.5.0 CDB Debugger Support,因为我已安装过,所以没有显现出来,如图: 第二种:直接把别人的调试包

qq_34534425的博客 1491

Qt qDebug基本的使用方法详解

qDebug() 是 Qt 框架中用于调试的函数,可以方便地将文本、变量和其他对象的调试信息输出到控制台或其他输出设备。

yegu001的博客 1万+

基于WFP构建Windows内核级流量监控与转发系统实战指南

网络流量监控是网络运维、安全分析和性能调优的基础技术,其核心原理在于对网络协议栈中的数据包进行捕获、解析与处理。传统工具如Wireshark工作在数据链路层,虽能获取原始帧,但信息嘈杂且难以实现精细控制。Windows Filtering Platform(WFP)作为微软提供的网络过滤平台,允许开发者在网络协议栈的各个关键层(如传输层、应用层授权层)插入可编程的“检查点”,实现对数据包的深度观测、精准拦截乃至修改转发。这项技术对于实现高性能、内核态的流量审计、负载均衡旁路检测或透明代理等场景具有重要价值。

weixin_33894640的博客 846

Log4Qt Appender清单:15种内置输出方式,控制台、文件、数据库一网打尽

Log4Qt 是 Qt 跨平台应用框架的 C++ 日志库,它的 **Appender(输出器)** 机制决定"日志输出到哪里"。本文带你快速认识 Log4Qt 全部 15 种内置 Appender:从控制台打印、滚动文件,到数据库写表、Telnet 推送,一篇搞懂该怎么选、怎么配。 ## 一、什么是 Appender?Log4Qt 日志输出的核心组件 在 Log4Qt 的日志链中:**Logg

gitblog_00278的博客 256

QT实现类似qDebug()打印输出之mDebug()

QT实现类似qDebug()打印输出之mDebug(),实现了打印opencv和QT的所有基本数据类型。方便调试

告别混乱日志:用qDebug和DebugView打造高效Qt调试环境(Windows版)

本文详细介绍了在Windows平台上,如何利用Qt的qDebug工具和Sysinternals DebugView软件构建高效的调试环境。文章深入讲解了qDebug的流式输出、自定义类型输出等高级用法,并指导如何配置DebugView来实时捕获和过滤调试信息,从而解决Qt GUI应用调试信息难以查看的问题,显著提升开发效率。

terraform7cloud的博客 424

从零开始:PLUMED与GROMACS整合安装全攻略

本文详细介绍了如何从零开始整合安装PLUMED与GROMACS,包括系统环境检查、MPI配置、PLUMED编译安装、GROMACS补丁应用及常见问题解决方案。通过本教程,研究人员可以快速完成分子动力学模拟工具的整合安装,实现增强采样和自由能计算功能。

weixin_42520796的博客 292

属性基加密(Attribute-based Encryption, ABE)

KP-ABE中,用户的密钥定义了访问策略,密文的属性与策略进行匹配。CP-ABE中,密文定义了访问策略,用户的属性与策略进行匹配。

2201_75392924的博客 1830

基于DebugView来调试运行在Windows系统的应用

DebugView 是一个由微软开发的调试工具,它允许开发人员在没有调试器的情况下捕获系统或应用程序的调试输出。这对于调试 Windows 程序、驱动程序以及分析系统行为非常有用。DebugView 可以实时捕获和显示来自内核模式和用户模式下的调试信息,这使得它成为排查问题时的一大利器。DebugView 是一个功能强大且易于使用的调试工具,适用于各种调试场景。无论是捕获实时调试信息还是分析系统行为,DebugView 都能够为开发人员提供极大的帮助。

Habo_的博客 1933

深入博通PEX89000内部:那颗ARM CPU和Synthetic Mode到底能玩出什么花样?

本文深入解析博通PEX89000系列PCIe交换芯片内置的ARM CPU与Synthetic Mode技术,揭示其在AI计算和数据中心的智能潜能。通过ARM Cortex CPU的实时控制和Synthetic Mode的自治网络功能,PEX89000实现了GPU集群的动态拓扑重组和资源池化,大幅提升AI训练效率。文章还探讨了该技术在软件定义数据平面和弹性AI架构中的创新应用。

weixin_30776273的博客 209

DebugView工具使用方法

DebugView是一个系统调试信息输出的捕获工具。在程序中使用如下函数:   1> OutputDebugString 或者在MFC中使用TRACE   2> 内核模式中使用Out_Debug_String,DbgPrint ,_Debug_Printf_Service 编译程序为DEBUG版本,然后运行程序(不是在vs 中运行,是单独运行),打开debugview 就可以在其中看到输出的调试信息。 一、本地调试 使用DebugView时候可以选择捕获程序调试信息为用户程序或者内核程序。..

深之JohnChen的专栏 5663

Kubernetes集群环境搭建与初始化

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

m0_75254642的博客 1523

浅谈车载控制器产线EOL实现方式

1、控制器生产产线上电路检测设计 2、客户总装产线检测设计

u012406840的博客 2万+

Windows Qtcreator不能debug 调试 qt5 程序

我使用的是 编译器是 MinGW8.1.0 ,这个版本是有问题的,需要更新到最新,我更新的是MinGW13.1.0 for c++;具体可以操作,用qt安装目录下的 MaintenanceTool.exe 进行就可以;Windows下 Qt Creator 14.0.2 与Qt5.15.2 正常release打包都是没有问题的,就是不能debug,最后发现是两者不兼容导致的;项目选择新的 编译器就可以;最好是在这里把以前老的编译器 右键 Disable 关闭了,这样在下面构建选择时候就看不到老的了;

热爱远方的心~ 1127

CMake入门教程【基础篇】在Windows、Linux上安装CMake

CMake如何下载与安装

小鱼酱的博客 2725

qt creator在windows上配置

选择debugging tools for windows。运行winsdksetup.exe 选择下载。重新打开qt,自动选择安装的编译器。选择安装x64版本debug工具。

z1872385的博客 784

Python赋能,洞见先机:构建基于异步爬虫与流处理的实时舆情监控系统

我们将从核心概念入手,逐步搭建一个集。.option("es.resource", "public-opinion-%s" % time.strftime("%Y-%m-%d")) \ # 按日期分索引。| 数据采集层 |----->| 消息队列层 |----->| 流处理与分析层 |----->| 存储与可视化层 |:使用Spark Streaming的状态操作或Flink的CEP库,检测更复杂的模式,如“某关键词的负面舆情在1小时内激增500%”。

2201_76125261的博客 433

汇川H5U PLC 实现直线插补、圆弧插补、直线圆弧混合连续插补

使用汇川H5UPLC实现直线插补,圆弧插补,直线圆弧混合路径插补,通过示教可以走出复杂的路径,仅供参考学习。

weixin_39832501的博客 4770
上一篇: 【VS 局域网内 远程调试】
阿克蒙德麟
博客等级 码龄6年 17粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值