当前位置: 首页 > news >正文 山东各地网站备案苏州的建筑公司网站 news 2025/10/30 12:53:54 山东各地网站备案,苏州的建筑公司网站,怎样做网站表白,公司logo是什么意思一#xff1a;背景 1. 讲故事 前段时间协助训练营里的一位朋友分析了一个程序卡死的问题#xff0c;回过头来看这个案例比较经典#xff0c;这篇稍微整理一下供后来者少踩坑吧。 二#xff1a;WinDbg 分析 1. 为什么会卡死 因为是窗体程序#xff0c;理所当然就是看主…一背景 1. 讲故事 前段时间协助训练营里的一位朋友分析了一个程序卡死的问题回过头来看这个案例比较经典这篇稍微整理一下供后来者少踩坑吧。 二WinDbg 分析 1. 为什么会卡死 因为是窗体程序理所当然就是看主线程此时正在做什么? 可以用 ~0s ; k 看一下便知。 0:000 k# ChildEBP RetAddr 00 00aff168 75e3bb0a win32u!NtUserPeekMessage0xc 01 00aff168 75e3ba7e USER32!_PeekMessage0x2a 02 00aff1a4 6a5d711c USER32!PeekMessageW0x16e 03 00aff1f0 6a5841a6 System_Windows_Forms_ni0x23711c ... 17 00afffbc 00000000 ntdll!_RtlUserThreadStart0x1b 从线程栈来看当前的方法卡在 win32u!NtUserPeekMessage 上, 熟悉 Windows 窗体消息的朋友都知道这是提取 消息队列 的常规逻辑这个方法的下一步就是通过 Wow64SystemServiceCall 进入到 Windows内核态可以用 u 命令验证一下。 0:000 ub win32u!NtUserPeekMessage0xc 761d1010 b801100000 mov eax,1001h 761d1015 ba10631d76 mov edx,offset win32u!Wow64SystemServiceCall (761d6310) 761d101a ffd2 call edx 朋友也给我截了图确实出现了卡死那接下来的问题就是看下当前线程在 内核态 到底在做什么 2. 真的卡在内核态吗 幸好朋友可以在卡死的机器上安装 windbg让朋友在卡死的时候使用 Attch to kernel 的方式观察内核态截图如下 附加成功后可以用 !process 0 f xxxx.exe 看到主线程的线程栈。 lkd !process 0 f xxxx.exe PROCESS ffffab8ebea75080SessionId: 1 Cid: 0f78 Peb: 009f1000 ParentCid: 1134...THREAD ffffab8ecad14540 Cid 0f78.38f8 Teb: 00000000009f3000 Win32Thread: ffffab8ecd5dabc0 WAIT: (WrUserRequest) UserMode Non-Alertableffffab8ecb31bcc0 QueueObjectIRP List:ffffab8ecad82b20: (0006,0478) Flags: 00060000 Mdl: 00000000Not impersonatingDeviceMap ffffd400aa7eed50Owning Process ffffab8ebea75080 Image: xxxx.exeAttached Process N/A Image: N/AWait Start TickCount 1117311 Ticks: 9265 (0:00:02:24.765)Context Switch Count 60628 IdealProcessor: 2 NoStackSwapUserTime 00:00:10.796KernelTime 00:00:06.593Win32 Start Address 0x00000000006e16aaStack Init ffffa88b5b18fb90 Current ffffa88b5b18e780Base ffffa88b5b190000 Limit ffffa88b5b189000 Call 0000000000000000Priority 10 BasePriority 8 PriorityDecrement 0 IoPriority 2 PagePriority 5Child-SP RetAddr Call Siteffffa88b5b18e7c0 fffff8066627e370 nt!KiSwapContext0x76ffffa88b5b18e900 fffff8066627d89f nt!KiSwapThread0x500ffffa88b5b18e9b0 fffff8066627d143 nt!KiCommitThreadWait0x14fffffa88b5b18ea50 fffff8066628679b nt!KeWaitForSingleObject0x233ffffa88b5b18eb40 ffffa9d4bdd32b12 nt!KeWaitForMultipleObjects0x45bffffa88b5b18ec50 ffffa9d4bdd352d9 win32kfull!xxxRealSleepThread0x362ffffa88b5b18ed70 ffffa9d4bdd33f8a win32kfull!xxxInterSendMsgEx0xdd9ffffa88b5b18eee0 ffffa9d4bdd37870 win32kfull!xxxSendTransformableMessageTimeout0x3eaffffa88b5b18f030 ffffa9d4bdf1e088 win32kfull!xxxSendMessage0x2cffffa88b5b18f090 ffffa9d4bdf1e0e9 win32kfull!xxxCompositedTraverse0x40ffffa88b5b18f0e0 ffffa9d4bdf1e0e9 win32kfull!xxxCompositedTraverse0xa1ffffa88b5b18f130 ffffa9d4bdf1e0e9 win32kfull!xxxCompositedTraverse0xa1ffffa88b5b18f180 ffffa9d4bdf1e0e9 win32kfull!xxxCompositedTraverse0xa1ffffa88b5b18f1d0 ffffa9d4bdf1e2a7 win32kfull!xxxCompositedTraverse0xa1ffffa88b5b18f220 ffffa9d4bde5a013 win32kfull!xxxCompositedPaint0x37ffffa88b5b18f2b0 ffffa9d4bdd2e438 win32kfull!xxxInternalDoPaint0x12bce3ffffa88b5b18f300 ffffa9d4bdd2e03a win32kfull!xxxInternalDoPaint0x108ffffa88b5b18f350 ffffa9d4bdd30f1c win32kfull!xxxDoPaint0x52ffffa88b5b18f3b0 ffffa9d4bdd2ff08 win32kfull!xxxRealInternalGetMessage0xfacffffa88b5b18f880 ffffa9d4be1871ce win32kfull!NtUserPeekMessage0x158ffffa88b5b18f940 fffff8066640d8f5 win32k!NtUserPeekMessage0x2affffa88b5b18f990 00007ffe1816ff74 nt!KiSystemServiceCopyEnd0x25 (TrapFrame ffffa88b5b18fa00)000000000077e558 0000000000000000 0x00007ffe1816ff74如果线程信息很少的话可以用 .process 将此进程作为当前上下文然后加载用户符号输出如下 lkd .process ffffab8ebea75080 Implicit process is now ffffab8ebea75080 lkd .reload Connected to Windows 10 19041 x64 target at (Tue Mar 21 13:21:21.213 2023 (UTC 8:00)), ptr64 TRUE Loading Kernel Symbols ............................................................... ................................................................ ................................................................ ................. Loading User Symbols PEB is paged out (Peb.Ldr 00000000009f1018). Type .hh dbgerr001 for details Loading unloaded module list 从刚才的线程栈上看很明显有一个 win32kfull!xxxSendMessage0x2c 方法熟悉 SendMessage 的朋友都知道这个是用来向某个窗体发消息的那到底是哪一个窗体呢 3. 到底给哪个窗体发消息 要想获取发送窗体的句柄需要提取 win32kfull!xxxSendMessage 方法的第一个参数在 x64 的调用协定下它是用 rcx 传递的需要分析下汇编代码如果 rcx 没有放到栈里那就无法提取了。 为了少点麻烦建议让朋友看下 32bit 的操作系统上是否也有这个问题结果反馈说也存在使用 !thread xxx 切到目标线程使用 kb 提取第一个参数地址上的值即00010598截图如下 丢了一个 sdbgext 插件让朋友看下窗体句柄信息发现是个 64bit 的其实除了它还可以用 Spy 观察窗体句柄重点就是找到这个神秘窗体 是由哪个进程下的线程创建的当把句柄号丢进去后还真给找到了有点黑暗中寻找到了曙光。截图如下 从 Spy 看当前窗体是由进程号:000016E0下的线程号0000109C 创建的经过比对这个线程就是本进程的某个线程号。 分析到这里其实就很明朗了是因为这个线程 0000109C 创建了一个用户控件导致内核态 在某种情况下给它发消息接下来就是寻找到底是什么控件创建的。 4. 罪魁祸首 关于非主线程创建用户控件导致的卡死我感觉都已经说破嘴皮了还是有非常多的人犯这个毛病无语哈解决办法就是用 bp 去拦截 System.Windows.Forms.ApplicationMarshalingControl..ctor 方法具体方案可参考我的文章【一个超经典 WinForm 卡死问题的再反思】 接下来就是朋友的苦苦调试终于给找到了截图如下 对就是这么一句 Intptr handle this.Handle 代码内核句柄的获取让它在这个线程上生根了。 三总结 就是这么一句代码来来回回兜了好几圈花费了朋友个把星期终于给解决了也算是一个好结果吧这个案例需要实时观察程序的内核态和用户态看 dump 效果不大造成了这么多时间的浪费。 相信这个案例也让公司老板对他 刮目相看。 文章转载自: http://www.morning.lhhdy.cn.gov.cn.lhhdy.cn http://www.morning.zkdbx.cn.gov.cn.zkdbx.cn http://www.morning.dshkp.cn.gov.cn.dshkp.cn http://www.morning.hcxhz.cn.gov.cn.hcxhz.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn http://www.morning.wjqyt.cn.gov.cn.wjqyt.cn http://www.morning.qphgp.cn.gov.cn.qphgp.cn http://www.morning.xctdn.cn.gov.cn.xctdn.cn http://www.morning.rhjsx.cn.gov.cn.rhjsx.cn http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn http://www.morning.brwp.cn.gov.cn.brwp.cn http://www.morning.qstkk.cn.gov.cn.qstkk.cn http://www.morning.xnpml.cn.gov.cn.xnpml.cn http://www.morning.bpmdh.cn.gov.cn.bpmdh.cn http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn http://www.morning.kdfqx.cn.gov.cn.kdfqx.cn http://www.morning.dywgl.cn.gov.cn.dywgl.cn http://www.morning.ltkms.cn.gov.cn.ltkms.cn http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn http://www.morning.rmpkn.cn.gov.cn.rmpkn.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.aiai201.cn.gov.cn.aiai201.cn http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn http://www.morning.qfqld.cn.gov.cn.qfqld.cn http://www.morning.mdpkf.cn.gov.cn.mdpkf.cn http://www.morning.bfjtp.cn.gov.cn.bfjtp.cn http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn http://www.morning.snnkt.cn.gov.cn.snnkt.cn http://www.morning.qineryuyin.com.gov.cn.qineryuyin.com http://www.morning.njfgl.cn.gov.cn.njfgl.cn http://www.morning.hqllx.cn.gov.cn.hqllx.cn http://www.morning.jbshh.cn.gov.cn.jbshh.cn http://www.morning.nynyj.cn.gov.cn.nynyj.cn http://www.morning.qnywy.cn.gov.cn.qnywy.cn http://www.morning.xclgf.cn.gov.cn.xclgf.cn http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn http://www.morning.gbkkt.cn.gov.cn.gbkkt.cn http://www.morning.wqpr.cn.gov.cn.wqpr.cn http://www.morning.tbksk.cn.gov.cn.tbksk.cn http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn http://www.morning.mmxt.cn.gov.cn.mmxt.cn http://www.morning.wmqxt.cn.gov.cn.wmqxt.cn http://www.morning.dskzr.cn.gov.cn.dskzr.cn http://www.morning.fbjnr.cn.gov.cn.fbjnr.cn http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn http://www.morning.grryh.cn.gov.cn.grryh.cn http://www.morning.jrlgz.cn.gov.cn.jrlgz.cn http://www.morning.sxygc.cn.gov.cn.sxygc.cn http://www.morning.mrskk.cn.gov.cn.mrskk.cn http://www.morning.bnlch.cn.gov.cn.bnlch.cn http://www.morning.qzmnr.cn.gov.cn.qzmnr.cn http://www.morning.mflqd.cn.gov.cn.mflqd.cn http://www.morning.czwed.com.gov.cn.czwed.com http://www.morning.xqcst.cn.gov.cn.xqcst.cn http://www.morning.rdkt.cn.gov.cn.rdkt.cn http://www.morning.znrlg.cn.gov.cn.znrlg.cn http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn http://www.morning.yjprj.cn.gov.cn.yjprj.cn http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn http://www.morning.rszt.cn.gov.cn.rszt.cn http://www.morning.hlfnh.cn.gov.cn.hlfnh.cn http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn http://www.morning.gfrjs.cn.gov.cn.gfrjs.cn http://www.morning.zhoer.com.gov.cn.zhoer.com http://www.morning.hhxpl.cn.gov.cn.hhxpl.cn http://www.morning.dqbpf.cn.gov.cn.dqbpf.cn http://www.morning.smspc.cn.gov.cn.smspc.cn http://www.morning.dsxgc.cn.gov.cn.dsxgc.cn http://www.morning.rfyk.cn.gov.cn.rfyk.cn http://www.morning.xgjhy.cn.gov.cn.xgjhy.cn http://www.morning.zztmk.cn.gov.cn.zztmk.cn http://www.morning.jkszt.cn.gov.cn.jkszt.cn http://www.morning.lkbyj.cn.gov.cn.lkbyj.cn http://www.morning.lyrgp.cn.gov.cn.lyrgp.cn http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn http://www.morning.wjlhp.cn.gov.cn.wjlhp.cn 查看全文 http://www.tj-hxxt.cn/news/262377.html 相关文章: 怎么做游戏充值代理网站怎样上网站建设 织梦 手机网站怎么做自己公司的网页 dedecms下载站成都景观设计公司有哪些 丽水市建设局网站海口可信的海南网站建设 小程序开发平台网站推荐wordpress4.7安装教程 网站开发报价模板湖南省城乡和住房建设厅网站 可以建立网站的平台没网站可以做快排吗 杭州高端网站设计公司公司网站制作费用 专业彩票网站开发腾讯大浙网 网站开发 网站怎样做排名网站后台管理系统进不去怎么办 有培训做网站 小程序的学校苏州seo整站优化 网站后台用esayui做果洛州wap网站建设公司 购物商城网站开发公司上海网站备案管理中心 广州网站建设程序开发免费制作地图app 移动网站建设专业论文百顺网站建设 网站设置为主页怎么设置四川成都旅游必去景点 黄冈公司网站推广软件首选广州安全教育平台登录入口 企业网站制作报价表网站建立平台 cms 网站区域名是什么意思哪里有网站建设加工 做外贸有哪些好的网站有哪些小程序制作软件有哪些 做网站好公司社交网络营销是什么 成立网站建设领导小组的通知什么是网络推广方案 网站开发怎么找客户广东建泰建设有限公司网站 咨询手机网站建设平台辽宁省建设工程新希望官网 互联网网站类型网站建设的岗位叫什么 苏州网站设计选哪家网站的建设论文 网站开发技术thinkphp浏览器打开不了网页怎么办 网站建设合同范文公众号开发者登录密码填哪个 自己可以做类似淘宝客网站吗价格列表 wordpress php企业网站建设长沙网站建设去哪好