- 博客(124)
- 资源 (3)
- 收藏
- 关注
原创 【C++】虚函数表菱形继承的内存布局分析【2025.11.23】
摘要:虚继承解决了C++菱形继承中的数据冗余和二义性问题。在普通继承中,最底层子类会包含多个基类副本,导致虚函数表重复和访问歧义。通过虚继承(virtual关键字),中间派生类声明其基类继承为共享式,使最终子类只保留一个基类副本。代码示例展示了虚继承前后虚函数表结构的变化:虚继承后多出一个基类虚函数指针,避免了重复继承带来的问题。这种机制类似于组织架构中共享权限的管理方式。
2025-11-23 12:07:52
289
原创 【windows】使用verifier定位windows非分页内存暴涨至奔溃,CACHE_MANAGER code【2025年9月25日】
摘要 本文介绍了通过Driver Verifier工具解决minifilter文件保护驱动开发中导致系统蓝屏的问题。由于传统pooltag方法难以定位快速增长的资源泄漏,作者采用双机调试环境,在Windows10虚拟机上配置Driver Verifier工具进行检测。关键步骤包括:1) 设置虚拟串口调试;2) 使用verifiergui.exe配置内存检测选项;3) 在系统出现非分页内存异常时,通过windbg执行!verifier 0x80命令获取详细的堆栈调用信息。最终分析结果显示问题与文件系统操作相关
2025-09-25 09:37:08
240
原创 【windows】vs20-- 调试时无法查看string、vector等类型的值【2025年9月22日】
摘要 高版本VS打开低版本工程时出现内存值显示异常问题,实际调试中无法查看具体内存值。推测原因是VS版本兼容性导致的内存映射问题。临时解决方案是使用对应版本的VS打开工程。建议进一步探索高版本VS如何兼容调试低版本工程的方法。
2025-09-22 11:53:00
221
原创 【Windows】win10安装怎么跳过微软账户登录 【2025年8月4日】
Windows 10安装后强制要求微软账户登录时,可以尝试输入任意邮箱(如yourname@outlook.com)进行登录,系统通常会显示本地账户登录选项。这个方法能绕过强制在线账户登录的限制,让用户选择创建本地账户。
2025-08-04 15:38:19
1581
原创 【Linux 性能采集】定周期采集某进程的CPU、内存、文件描述符信息并存储到文件【2025.05.21】
采集原理是基于top命令提取关注的参数。输出到文件采用tee 命令,即在控制台窗口打印,也输出到文件。例如:./monitor.sh | tee 123.csv。
2025-05-21 14:05:50
325
原创 【Windows】WMI Provider Host占用CPU过高,到底在忙啥?-篇二【2025.05.15】
本文深入分析了Windows系统中WMI(Windows Management Instrumentation)导致CPU占用高的一个BUG,特别是在禁用CD-ROM后wmiprvse.exe进程的CPU占用异常升高。通过使用ProcExp、ProcMonitor、ApiMonitor和WPT等工具,作者详细追踪了函数调用栈、调用频率以及API调用参数值,发现禁用CD-ROM后,GetTickCount函数的频繁调用是导致CPU占用高的主要原因。
2025-05-15 10:50:58
1915
原创 【Windows】怎么解决Win 10家庭版WMI Provider Host占用CPU过高的问题?-篇一【2025.05.07】
wmiprvse.exe 的CPU资源占用高的问题,做个深入分析。
2025-05-07 22:33:56
3729
原创 【Linux内存泄漏】自创pamp 内存快照比对定位内存泄漏【2024-11-07】
如下图:SIZE = 1408 RSS = 1216 PSS = 5 ,意味这这个内存是共享内存,且共享的位置很多。这个内存段关联的文件是libc-2.28.so,r-xp表式这个内存段是 读权限、执行权限和私有(Private)。dump memory /home/myb/桌面/memory_dump_0000632000000000.bin 0x0000632000000000 0x000063200178A000。如下图,左侧的5间隔2天后变成右侧的6,是因为有使用这个库的进程退出,导致PSS变大。
2024-11-07 20:39:03
556
1
原创 【TimeSum】个人项目管理,个人目标引导软件,专利产品,整合日历、便签、番茄时钟、数据分析【2024-11-07】
经过近两年的迭代,TimeSum目前已实现预期的全部基本功能,麻雀虽小五脏俱全。软件基于Qt,纯C++开发。软件核心是逆向思维,将传统的个人项目执行,以逆向的方式,先制定目标,而后落地任务实现的方式。使您的个人数据不止记录,而且用起来。视频演示地址:【个人项目管理软件,时间记账,我的每一天时间都去哪了-哔哩哔哩】 https://b23.tv/lLmCiCT。
2024-11-07 14:26:42
454
原创 【valgrind】valgrind: mmap(0x400000, 163840) failed in UME with error 1 (Operation not permitted).【20】
valgrind运行失败的原因,我这边排查到的一种可能是被分析的软件文件无法映射到内存中。推荐排查方法是被分析的文件。
2024-10-16 09:34:14
297
原创 【windows】Windows窗口消息循环原理分析【2024年8月6日】
关于Windows窗口消息的发出到接收,跨线程边界的传输也进行了梳理。抛出个疑问:即为Windows的窗口循环需要自己实现,不能系统直接调对应的窗口过程?
2024-08-06 16:37:26
912
原创 【QtCreator】Gdb进程启动失败。可能是调用的程序“/usr/bin/gdb”不存在或者您没有调用该程序的权限【2024.02.19】
【QtCreator】Gdb进程启动失败。可能是调用的程序“/usr/bin/gdb”不存在或者您没有调用该程序的权限【2024.02.19】
2024-02-19 17:25:22
882
2
原创 【Git】切换分支【2024年2月19日】
git命令行方式切换分支,Linux系统下,遇到过几次切换分支后HEAD和当前分支断开的情况,原因是git checkout 使用错误导致。2.使用git checkout -t 新建一个本地分支跟踪远程分支。1.查看git checkout的帮助信息。3.查看本地分支与远程分支对应情况。
2024-02-19 13:59:52
569
原创 【Linux】gdb基本操作-类比visual studio vs2013【2024年1月16日】
【代码】【2024年1月16日】【Linux】gdb基本操作-类比visual studio vs2013。
2024-01-16 11:21:28
501
原创 【SourceTree】 rejected because your current branch is behind its remote counterpart【2023年12月25日】
git rejected 场景是远程服务器中有更新,而本地没有拉最新的代码就提交。报错内容:!
2023-12-25 09:37:49
737
原创 【开发工具】最新VMWare无法识别USB设备,驱动错误,未知错误【2023.12.15】
VMWare 无法识别USB设备,驱动错误,未知错误。在这里改下连接方式 多试试。
2023-12-15 20:09:35
5585
原创 【Qt高阶】Linux安装了多个版本的Qt 部署Qt程序,出包【2023.10.17】
linux系统下可执行程序运行时会加载一些动态库so,有一些是Qt的库,Qt的库会加载其他更基础的库。最后出包的时候需要把依赖的包整理到一个文件夹,来制作安装包。近期遇到已经将依赖的so文件拷贝至程序目录下,但还是调系统路径下的动态库的问题。对问题排查过程中的技术手段进行整理备忘。
2023-10-17 15:57:59
1139
原创 【Qt高阶】Qt D-Bus 简介【2023.10.16】
D-Bus 是一个进程间通信(IPC)和远程过程调用(RPC)机制,最初是为了 Linux 开发,用来取代现有的竞争的 IPC 解决方案,提供一个统一的协议。它也被设计来允许系统级进程(比如打印机和硬件驱动程序服务)和普通用户进程之间的通信。它使用一个快速的二进制消息传递协议,适合在同一台机器上的通信,因为其低延迟和低开销。其规范当前由 freedesktop.org 项目定义,并向所有方开放。通信通常是通过一个中心的服务器应用程序,称为“总线”(因此得名),但是应用程序之间的直接通信也是可能的。
2023-10-16 17:48:11
777
原创 【Qt高阶】老Qt都不一定清楚的“QObject线程亲和性”【2023.08.13】
本文继续围绕QThread和QTimer那个例子进行讲解。分析Qt槽函数执行在哪个线程,只不过这次拿官方的帮助文档背书。从手册中找解答。
2023-08-13 17:00:45
612
原创 【Qt高级】QThread与QTimer组合使用引出的信号槽执行在哪个线程的思考【2023.08.06】
想法很单纯,就是主线程启动一个子线程,子线程里启动一个定时器,定时执行一些任务,然鹅实际开发中警告不断。😒Qt警告内容有:槽函数执行在哪个线程取决于发出信号的对象和槽函数的对象是在哪个线程构造的。要想保证成员类的槽函数都执行在子线程,成员类的构造就需在子线程,也就是成员类要以指针的方式组合,在合适的时机new对象出来。
2023-08-06 10:17:00
1152
原创 【Qt】Qt存储大整数到`JsonValue`【2023.08.01】
我负责的需求是这样,存储文件绝对路径和文件大小到json字符串。开发过程中,未意识到文件可能大于int的最大值,所以埋下了隐患。今天被测试提了个bug。主要原因是QJsonValue的toInt()返回的是4字节的int类型,拿来存一个大于有符号四字节整数的值会溢出。这种边界值界定不明确导致bug的情况还是比较常见,做个总结分享帮助大家避坑。此外就是csdn上对于这块的教程属实是又少又粗略。1.QJsonValue存储整数是按照double类型存储的,即使是1这么一个很小的数。
2023-08-01 09:33:01
895
1
原创 【Linux】查看指定端口的UDP、TCP是否收到数据【2023.07.24】
场景是终端上报数据给服务端,会有前端进行展示。通过wireshark看到终端给服务端发送数据了,但是UDP无法确定服务端是否正确收到,于是需要在Linux执行一些命令查看是否收到数据。
2023-07-24 16:56:29
2770
原创 【C++】std::vector容器按条件删除中间某项或某几项【2023.07.21】
目标是使用for循环进行遍历std::vector,然后满足条件的删除。下面给出较优雅的一种写法。
2023-07-21 10:05:15
533
原创 【实用工具】批量复制文件到指定文件夹的辅助工具(BeyondCompare+CppCheck对某次更新的文件进行静态检查)【2023.07.07】
开发一个功能提交了多次代码,现在需要比较最终的提交和某次提交的差异并进行静态代码检查。用到了BeyondCompare和CppCheck软件。但是有个问题,BeyondCompare不能把差异项导出,于是乎花了两个小时写了个辅助工具。
2023-07-08 13:13:01
477
原创 【Qt】QJsonArray清空,释放内存【2023.07.03】
C++标准容器的清空是调用的swap函数,Qt的还真不清楚。故写了个Demo进行测试。经测试直接等于号赋空对象即可。
2023-07-03 17:52:32
1887
原创 【windows】QueryPerformanceFrequency/QueryPerformanceCounter【2023.06.07】
这个API是用于高精度计时的,用了好几次,老是忘记输出的单位是秒、毫秒、微妙还是纳秒?特做总结。
2023-06-07 18:22:42
192
原创 【Qt】delegate的自定义实现函数createEditor进不去【2023.05.07】
妈卖批,因为这个函数进不去,emo了一下午。实际上就是因为函数声明和定义的地方漏了个const关键字。
2023-06-01 22:39:53
1168
3
原创 【Qt】QLocalSocket与QLocalServer问题:接收不到数据、只能收到第一条、数据不完整解决方案【2023.05.24】
Qt很强大,但是Qt的帮助文档、API属实是让我们走不少弯路。QLocalSocket一个很简单的东西,我仅想用来实现一个简单的本地进程通信,就遇到了:客户端循环发送数据,服务端只能接收到一条、接收到数据不完整等奇奇怪怪的现象。
2023-05-24 11:15:52
2358
原创 【Qt工程】error: LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const *【2023.05.12】
主要是对Qt不熟,Creator中构建项目是编译+链接,重新根据*.h和*.cpp文件进行生成工程是qmake。构建项目、重新构建项目都不会重新qmake工程。
2023-05-12 15:27:22
1967
原创 【Qt】【插件Plugin 篇二】 Q_PLUGIN_METADATA、Q_INTERFACE、Q_DECLARE_INTERFACE的功能剖析【2023.05.07】
关于Qt插件的Q_PLUGIN_METADATA、Q_INTERFACE、Q_DECLARE_INTERFACE宏,这张图总结的基本差不多了,逻辑上贯穿起来了。
2023-05-12 10:45:18
517
原创 【Qt】【插件Plugin 篇一】 入门之Q_PLUGIN_METADATA()宏【2023.05.07】
分析Q_PLUGIN_METADATA宏的设计意图,站在设计者的意图进行插件的高屋建瓴式学习。与dllexport进行对比学习。
2023-05-07 22:58:10
3343
2
Linux下Qt部署程序
2023-10-17
内核驱动安装测试工具KMDM(Kernal-Mode Driver Manager)和DebugView工具最新版
2022-08-19
C++代码实现Windows系统下发送鼠标移动和单击的程序
2022-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅