查看: 2945|回复: 0

[Windows] 在调试器中看ToDesk

[复制链接]

1

主题

0

回帖

17

积分

新手上路

Rank: 1

积分
17
发表于 2024-1-4 17:30:45 | 显示全部楼层 |阅读模式


0x0 背景介绍

* 在调试器中看阿里的软件兵团(转载)
  https://xnerv.wang/debugging-alibaba-softwares/

* 在调试器里看百度云管家
  https://blog.csdn.net/lispython/article/details/80123698

原作者都是 @张银奎 老师,上述引用的博客链接均非出自 @张银奎,特此说明。

0x1 问题现象

* 软件版本:Windows 版 V4.7.0.2

* 系统环境:DELL Optiplex 7050 台式机 / 32G / SSD / Windows 10 Enterprise 22H2 / Intel(R) HD Graphics 630 / Dell E2216HV 显示屏

* ToDesk.exe V4.7.0.2:SHA1 EA3E349371F0FBEFAFBAF2A21F17FF32BD7DFECF

^ 以下细节描述均基于该二进制文件 ^

* 问题 1:缺页中断高居不下

todesk.png

Page Fault Delta 太高,导致一段时间后总缺页数远超其他进程。

* 问题 2:偶现“内存不足”的弹窗提示,需重启 explorer.exe 进程拯救桌面。

论坛内有其他类似反馈,本人在使用过程中也是间隔若干时间后会遇到一次。表象就是 explorer.exe 假死,桌面 GUI 渲染出问题,无法点击和正常使用,需重启 explorer.exe 进程恢复。

0x2 问题分析

针对上述问题 1,给出我的一部分排查结果,供参考。

* 问题 1:缺页中断高居不下

根据「背景介绍」一节中给出的参考方法,借助 Windows Performance Toolkit 及 Page Fault Monitor 工具,可以看到同样出在 CreateToolhelp32Snapshot/Process32Next 系列函数上。

Page_Fault_Monitor.png

Page Fault Monitor

Windows_Performance_Analyzer.png

Windows Performance Analyzer

KERNEL32!CreateToolhelp32Snapshot 下断点,近几次命中时的栈帧/位置均为 0x7FF6ECD1CF73

  1. bp kernel32!CreateToolhelp32Snapshot ".echo ***hit***; r @rip; r @$t1=@$t1+1;  kv 3; .if (@$t1>10) {} .else {gc;}"
复制代码

bp_1.png

对应位置处,待匹配的 lstrcmpiW 所对应的进程名是 ToDesk.exe

ida.png

  1. bp kernelbase!lstrcmpiW ".echo ***hit***; r $t1=@$t1+1; du @rdx; .if (@$t1>10) {} .else {gc;}"
复制代码

bp_2.png

至于影响,引用 @张银奎 老师文章里的几段话:

为何选择Page faults来衡量软件对功耗的影响?虽然今天的计算机都配备了比较多的物理内存,但仍离不开虚拟内存技术,把暂时不用的数据放在外存中,当CPU访问这样的数据时,会报告缺页异常,让操作系统的内存管理器将数据从外存中读到物理内存,这个操作通常被称为Page In。物理内存是以页为单位来管理的,因此每次Page In的数据至少是一个页,通常为4KB。访问外存意味着系统总线和硬盘等存储设备的运作,在时间和功耗方面都是较大的开销,因此,Page faults常成为系统调优的一个重要指标。

-- 「在调试器中看阿里的软件兵团」

至于优化:
一年多之前,我曾写过一篇《在调试器里看阿里的软件兵团》,批评了支付宝客户端软件中的性能问题,文章发表后,很高兴看到阿里的同行不断改进,今天已经不再有当时的问题了(图1中还可以看到淘宝的TBSecSvc进程,排名已经比较靠后)。不知百度的同行看过此文有何感想?作为一款客户端软件,能帮助用户管家是好想法,但是管家毕竟是仆人,有事时应该尽心给主人办事,没事时应该安安静静休息,不要肆意挥霍主人家的东西。
-- 「在调试器里看百度云管家」

期待后续版本能减少这种情况的发生。

* 问题 2:偶现“内存不足”的弹窗提示

原本以为是自己电脑环境的特例情况,没想到论坛上有类似的反馈,相比问题 1 我更关心问题 2 的成因及解决办法。这个问题由于“偶现”的缘故暂时还没找到稳定的排查方式,待后续如果有新的发现时再更新至此。

Stay tuned!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表