幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

记一次。NET某汽车零件采集系统卡死分析

  一:背景1。讲故事
  前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡死的情况,让我帮忙看下是怎么回事,刚好朋友也抓到了dump,就让朋友把dump丢给我,接下来用windbg探究下到底咋回事。二:WinDbg分析1。程序真的卡死吗
  因为是一个winform程序,验证起来很简单,观察主线程此时在做什么即可。
  spanstylecolor:986801;lineheight:26px;0span:spanstylecolor:986801;lineheight:26px;000span:x86spanstylelineheight:26px;kb
  spanstylecolor:4078f2;lineheight:26px;CvRegToMachinespan(spanstylelineheight:26px;x86span)conversionfailurespanstylecolor:a626a4;lineheight:26px;forspan0x14f
  X86MachineInfo::SetVal:unknownregister0requested
  ChildEBPRetAddrArgstoChild
  00018fe0a877413ff9000009180000000000000000ntdll77530000!NtWaitForSingleObject0xc
  01018fe0a877413f5200000918ffffffff00000000KERNELBASE!WaitForSingleObjectEx0x99
  02018fe0bc1000fe9c00000918ffffffff1000fec0KERNELBASE!WaitForSingleObject0x12
  WARNING:Stackunwindinformationnotavailable。Followingframesmaybewrong。
  03018fe33803d7808a000000000000000000000000USB3101A!USB3101AAUXgetch0xdc
  04018fe35803d7803a0000000000000000000000000x3d7808a
  05018fe3786ff87596046e192803f0297003f02db00x3d7803a
  。。。
  span
  从主线程的线程栈看,托管代码调用了非托管的USB3101A!USB3101AAUXgetch方法,然后在NtWaitForSingleObject方法上等待,熟悉NtWaitForSingleObject方法的朋友都知道,它的第一个参数是句柄类型,签名如下:
  spanstylelineheight:26px;NTSTATUSspanstylecolor:4078f2;lineheight:26px;NtWaitForSingleObjectspanspanstylelineheight:26px;(
  〔in〕HANDLEHandle,
  〔in〕BOOLEANAlertable,
  〔in〕PLARGEINTEGERTimeout
  )spanspan;
  有了这个信息,我们可以用windbg提取ntdll77530000!NtWaitForSingleObject方法的第一个参数00000918。
  spanstylecolor:986801;lineheight:26px;0span:spanstylecolor:986801;lineheight:26px;000span:x86!handlespanstylecolor:986801;lineheight:26px;00000918spanf
  Handlespanstylecolor:986801;lineheight:26px;00000918span
  TypeMutant
  Attributesspanstylecolor:986801;lineheight:26px;0span
  GrantedAccessspanstylecolor:986801;lineheight:26px;0x1f0001span:
  Delete,ReadControl,WriteDac,WriteOwner,Synch
  QueryState
  HandleCountspanstylecolor:986801;lineheight:26px;2span
  PointerCountspanstylecolor:986801;lineheight:26px;59730span
  NameSessionsspanstylecolor:986801;lineheight:26px;9spanBaseNamedObjectsUSB3101ALOCKspanstylecolor:986801;lineheight:26px;0span
  Objectspecificinformation
  MutexisOwned
  MutantOwnerspanstylecolor:986801;lineheight:26px;1334。1spanec0
  从输出信息的MutantOwner1334。1ec0来看,这是一个mutex锁,当前这个锁被1134号进程中的1ec0线程持有,我们都知道mutex是可以跨进程的,接下来疑问就来了,难道这个锁被其他的进程持有后不释放吗?那到底是不是其他进程呢?可以用看下当前进程的进程号。spanstylecolor:986801;lineheight:26px;0span:spanstylecolor:986801;lineheight:26px;000span:x86
  。spanstylecolor:986801;lineheight:26px;0spanId:spanstylecolor:986801;lineheight:26px;1334。1e74spanSuspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;016spanee000Unfrozen
  spanstylecolor:986801;lineheight:26px;1spanId:spanstylecolor:986801;lineheight:26px;1334。1354spanSuspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;016fspana000Unfrozen
  spanstylecolor:986801;lineheight:26px;2spanId:spanstylecolor:986801;lineheight:26px;1334。2spanc30Suspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;016fspand000Unfrozen
  spanstylecolor:986801;lineheight:26px;3spanId:spanstylecolor:986801;lineheight:26px;1334。spandb4Suspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;01706000spanUnfrozen
  spanstylecolor:986801;lineheight:26px;4spanId:spanstylecolor:986801;lineheight:26px;1334。2spanac4Suspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;0170fspan000Unfrozen
  spanstylecolor:986801;lineheight:26px;5spanId:spanstylecolor:986801;lineheight:26px;1334。spand54Suspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;01718000spanUnfrozen
  spanstylecolor:986801;lineheight:26px;6spanId:spanstylecolor:986801;lineheight:26px;1334。4fspancSuspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;0171bspan000Unfrozen
  spanstylecolor:986801;lineheight:26px;7spanId:spanstylecolor:986801;lineheight:26px;1334。241spancSuspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;01727000spanUnfrozen
  spanstylecolor:986801;lineheight:26px;8spanId:spanstylecolor:986801;lineheight:26px;1334。2464spanSuspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;01733000spanUnfrozen
  spanstylecolor:986801;lineheight:26px;9spanId:spanstylecolor:986801;lineheight:26px;1334。1spanec0Suspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;0175spand000Unfrozen
  spanstylecolor:986801;lineheight:26px;10spanId:spanstylecolor:986801;lineheight:26px;1334。3bspanc4Suspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;01790000spanUnfrozen
  spanstylecolor:986801;lineheight:26px;11spanId:spanstylecolor:986801;lineheight:26px;1334。2844spanSuspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;01799000spanUnfrozen
  spanstylecolor:986801;lineheight:26px;12spanId:spanstylecolor:986801;lineheight:26px;1334。2spana88Suspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;0179spanc000Unfrozen
  spanstylecolor:986801;lineheight:26px;13spanId:spanstylecolor:986801;lineheight:26px;1334。2190spanSuspend:spanstylecolor:986801;lineheight:26px;0spanTeb:spanstylecolor:986801;lineheight:26px;0179fspan000Unfrozen
  从输出看1334。1ec0来看,mutex是被本进程的9号线程持有,是本进程就好办了。2。为什么9号线程不释放
  带着好奇心立刻切到9号线程上观察它的托管和非托管栈。
  spanstylecolor:986801;lineheight:26px;0span:spanstylecolor:986801;lineheight:26px;009span:x86!clrstack
  OSThreadId:spanstylecolor:986801;lineheight:26px;0x1ec0span(spanstylecolor:986801;lineheight:26px;9span)
  ChildSPIPCallSite
  spanstylecolor:986801;lineheight:26px;0395spanec00spanstylecolor:986801;lineheight:26px;0000002bspan〔InlinedCallFrame:spanstylecolor:986801;lineheight:26px;0395spanec00〕
  spanstylecolor:986801;lineheight:26px;0395spanebfcspanstylecolor:986801;lineheight:26px;0spandbfc91dDomainBoundILStubClass。ILSTUBPInvoke(IntPtr,Int16〔〕,UInt32,UInt32ByRef,UInt32ByRef,Double)
  spanstylecolor:986801;lineheight:26px;0395spanec00spanstylecolor:986801;lineheight:26px;0spandbfc3e0〔InlinedCallFrame:spanstylecolor:986801;lineheight:26px;0395spanec00〕xxxx。USB3101AAIReadBinary(IntPtr,Int16〔〕,UInt32,UInt32ByRef,UInt32ByRef,Double)
  spanstylecolor:986801;lineheight:26px;0span:spanstylecolor:986801;lineheight:26px;009span:x86spanstylelineheight:26px;kb
  spanstylecolor:4078f2;lineheight:26px;CvRegToMachinespan(spanstylelineheight:26px;x86span)conversionfailurespanstylecolor:a626a4;lineheight:26px;forspan0x14f
  X86MachineInfo::SetVal:unknownregister0requested
  ChildEBPRetAddrArgstoChild
  000395e4c077447a94000009100000000000000000ntdll77530000!NtWaitForSingleObject0xc
  010395e4c07665fc4b000009100022004b0395e524KERNELBASE!DeviceIoControl0x35404
  020395e4ec1000c5bb000009100022004b0395e524kernel32!DeviceIoControlImplementation0x4b
  WARNING:Stackunwindinformationnotavailable。Followingframesmaybewrong。
  03000009101000f7ea000107e70010000100220009USB3101A!USB3101ASetPassword0x24b
  040403a7b47292cc680438b5d4000000000000000cUSB3101A!USB3101AE2PUpdateToFirmware0x10a
  0500000000775a2b1c77413ff90000091800000000clr!StringObject::NewString0x4c
  060000000077413ff9000009180000000077414016ntdll77530000!NtWaitForSingleObject0xc
  070000000010022e610395e7a000000000e9c915c7KERNELBASE!WaitForSingleObjectEx0x99
  span
  从输出信息看,DeviceIoControl是一个非常底层的Win32API接口,看了下文档说是给指定的驱动设备下达指令,了,那它在等待什么呢?用同样的方式提取00000910参数。
  spanstylecolor:986801;lineheight:26px;0span:spanstylecolor:986801;lineheight:26px;009span:x86!handlespanstylecolor:986801;lineheight:26px;00000910spanf
  Handlespanstylecolor:986801;lineheight:26px;00000910span
  TypeFile
  Attributesspanstylecolor:986801;lineheight:26px;0span
  GrantedAccessspanstylecolor:986801;lineheight:26px;0x12019fspan:
  ReadControl,Synch
  ReadList,WriteAdd,AppendSubDirCreatePipe,ReadEA,WriteEA,ReadAttr,WriteAttr
  HandleCountspanstylecolor:986801;lineheight:26px;2span
  PointerCountspanstylecolor:986801;lineheight:26px;59992span
  Nospanstylecolor:a626a4;lineheight:26px;objectspanspecificinformationavailable
  从输出信息看,这是一个file类型的句柄,既然朋友说卡死,那就说明9号线程在这个handle上一直等待或者由于各种情况出不来,那为什么出不来呢?3。为什么不能全身而退
  既然9号线程不能很好的退出非托管操作,内部可能发生了什么错误,要想提取当前线程在win32层面是否发生错误,可以用windbg的!gle命令,
  spanstylecolor:986801;lineheight:26px;0span:spanstylecolor:986801;lineheight:26px;009span:x86!gle
  LastErrorValue:(Win32)spanstylecolor:986801;lineheight:26px;0xb7span(spanstylecolor:986801;lineheight:26px;183span)Unabletospanstylecolor:a626a4;lineheight:26px;getspanerrorcodetext
  LastStatusValue:(NTSTATUS)spanstylecolor:986801;lineheight:26px;0spanSTATUSSUCCESS
  Wow64TEBstatus:spanstylecolor:986801;lineheight:26px;24506368span
  LastErrorValue:(NTSTATUS)spanstylecolor:986801;lineheight:26px;0span(spanstylecolor:986801;lineheight:26px;0span)STATUSSUCCESS
  LastStatusValue:(NTSTATUS)spanstylecolor:986801;lineheight:26px;0spanSTATUSSUCCESS
  从输出信息看,当前报了一个0xb7的错误,不过可惜的是现在!error不能很好的展示错误信息,只能到msdn上去查,参考链接:https:learn。microsoft。comenuswindowswin32debugsystemerrorcodes0499
  分析到这里,逻辑大概就捋清楚了。1号线程等待9号线程释放mutex锁。9号线程意外出现了错误得不到退出,导致mutex锁不能释放。
  接下来就是让朋友重点看下9号线程的线程栈,为什么会出现重复创建的逻辑,毕竟涉及到了业务逻辑,我也只能帮到这里了。三:总结
  这种类型的dump分析起来还是挺锻炼分析基本功的,文章中涉及到了一些windbg命令的使用技巧,相信大家会有收获的。

灌篮高手手游进阶三井依旧是低端局杀器,还是一堆人不会防诸君安好,雾夏菌报道。这一回合再来说一下进阶三井的问题,本菌前段时间没怎么玩,导致段位掉了很多,然后重新打的时候,最直观的一个感受,就是选三分球员的好多。1、低端局杀器……深度45亿募资做现金管理,超募10倍的禾迈股份为何不投主业还沉浸在55。78亿元的巨额募集资金的喜悦中,禾迈股份(688032。SH)的管理层,就碰到了超募资金如何使用的难题。禾迈股份采取的解决办法,是用其中的45亿元做现金管理。这引……什么手表才能保值?盘点手表保值背后的真相现在佩戴手表的人,都非常注重手表的品牌。一方面高档手表能让自己在社交场合显得更有面子,另一方面手表保值的神话最近几年持续不断地升温。于是很多人误以为,只要是高端品牌售价比较高昂……外套里不知道穿什么?这几类内搭穿上既好看又时髦,还很保暖在降温之后进入初冬时节,很多的女生都已经从刚刚合适的薄外套过渡到了厚外套,冬天见到最多的就是羽绒服和羊羔毛以及羊绒大衣这种类型的单品,会有一定的厚重感,但是非常的保暖。很……确定首发天玑9000!120W5000毫安,红米k50确实香在这个月,高通的市场热度可以说是前所未有的高,因为高通发布了骁龙的最新处理器骁龙8gen1这款全球首款4nm制程处理器,其在市场上的热度高涨起来确实正常。而且在手机市场上……玄武与木村祥事件背后的真实情况玄武在搏击圈近年也算小有名气,当然这个名气不是靠打出来的,而是靠碰碰碰出来的。首先拜品行不端的王占海为师,获得第一波流量,然后开始炒作与一虫的比赛,当然比赛最终夭折,大概……晚上11点,国际乒联宣布名单,5人不参加比赛,刘国梁乐了美国休斯顿世乒赛刚刚结束,就迎来了新加坡WTT世界杯决赛,这场比赛将于12月四日五日进行,12月4日将拉开帷幕。且12月2日国际乒联已经根据选手们表现积分排名等选出并公布了参赛……吃亏,或许才是人生常态近几日看到安徽有几名厅官陆续落马,其中有一位曾经在我们区做过区长,与我同龄。当年看到他是何等风光,尤其是比如到我们基层教育部门来调研或者某节日慰问时,主管领导们的前呼后拥,鞍前……5种教育原则,助你养育成功的小孩谈到养育,你条件反射想到的是谁?自己的小孩身为父亲的自己,在育儿方面虽然看了很多这方面的书籍,但是从独立思考的角度,之前看的很多都是具体方法手段类的,很少有谈到价值……健康小知识健康过大年不积跬步,无以至千里。不积小流,无以成江海。养生也是一样,离不开日常一点一滴地积累!2022新年伊始,我们梳理了涉及生活方方面面的50条健康知识,供大家作为健康……三方超级大交易方案出炉NBA常规赛正在进行当中,眼看交易截止日马上就要到了,各支球队都在如火如荼的进行交易方案的探索。各种交易流言也是满天飞。交易市场上比较惹人注目的几个球员,比如威斯布鲁克,西蒙斯……武大靖作为榜一大哥被踢出直播间,网友王濛你真的惹不起冰雪2022都说我们运动员有梗,这当然不是说说而已。除了在场上为了奖牌和更好的自己拼尽全力,在场下也给我们带来了无穷无尽的欢笑。游泳健将傅园慧,虽然实力与顶级运动员……
武汉三镇或将超越广州队,他们的这一点优势是当时广州队不具备的在本赛季的中超联赛中,武汉三镇绝对是最让球迷感到意外的一支球队了,目前他们在14轮比赛过后,依旧是排在联赛榜首的位置上,而且已经是领先了排在第二位的山东泰山4分,这在本赛季开始……建议皮肤偏黄偏黑的女人,多穿这4种高级色,衬肤色还洋气时代的审美主流,不再将女性定义为讨好男性,不再追求庸俗的曲线美感。女人穿衣打扮,真正做到了花为悦己者容,无需过多的参考外在的评价标准,遵从内心的选择,做到真正爱自己!穿衣……国产闪存半导体芯片,跳级突破128层技术,10年追平世界水平雄关漫道真如铁,而今迈步从头越。2020年底,长江存储Xtacking技术,助力其跳级量产128层堆栈闪存,没有代差,追平三星、镁光、海力士等国外大厂,达到了世界前沿水平……宝宝肌张力高一定是脑瘫吗?每个父母都希望孩子能够健康聪明,但是有出生缺陷的新生儿却屡见不鲜,他们生来就要接受不平等的待遇,他们需要和疾病不停地战斗,他们就是脑瘫宝宝。那肌张力高的宝宝一定是脑瘫吗?……赵丽颖身穿汉服,诠释东方美人如画的优雅,离婚后活出自信与自我赵丽颖为了代言一款产品,身穿汉服古装服饰,以盘发华贵的气质,手持扇子半遮面的姿态,诠释出东方美人如画的优雅。她代言的这款产品,品牌方以演绎古今大片《传承》为主,以赵丽颖古装为修……新能源55大涨半导体再跌,白酒整30医疗17白酒基金白酒上午依旧平稳,昨天收益率更新后不多不少刚好卡在了30,冥冥之中就是这么的神奇,就算跌也跌得这么让人称心如意。大多时候只要不是那种连续急跌,我基本只是看两眼然后……稳定币之王泰达币USDT为什么我可以不负责任地长概括以前,为了利息而持有Tether是没有意义的。USDC的透明度更高,两者的CeFi利率相似。最近市场条件发生了变化,使得对Tether的两位数兴趣成为一个有吸引力的前景。T……英超意甲曼联VS利物浦,罗马VS克雷莫纳,双红会谁拿到赛季首英超:004曼联VS利物浦双红会,万众瞩目,加上两队新赛季皆是未尝一胜,现场必定非常火爆曼联被打回19年前,联赛开局两连败丢6球,深究原因有几点:其一滕哈格的严格执……国羽世界冠军秀带娃美照,生活充满仪式感,女儿可爱眼神充满懵懂相信大家仍然熟悉有着极高水平的国家羽毛球运动员赵芸蕾和洪炜。这对夫妇去年9月迎来了他们的第一个新生儿。过去的八个月里,宝宝慢慢长大,妈妈的体型也恢复正常了。近期,这一家人借着天……手机的正确充电方法,你知道多少,不要再盲目地充电了在我们平常的日常生活中,大家都离不开手机,但往往大家却疏忽了对手机充电这一块,其实不正确的手机充电是很影响手机寿命的一种表现,那么我们应该如何正确的给手机充电呢。一定要注意以下……微信用户要注意出现这4种行为,或将导致你的账号被封停微信大家肯定不会陌生,在移动信息化时代,现如今人们的社交、感情和娱乐,似乎都是通过微信去维持,也正因为如此,微信在国内就有超12亿的用户使用。微信虽然很好用,但是由于用户……别替刘诗诗抱不平了,大她17岁的吴奇隆,公司早就上市了昨日有狗仔曝出一组刘诗诗吴奇隆的近况视频视频中的两人全程无交流,并相隔很远并且吴奇隆进入酒店的时候直接闪身进去酒店的门回弹还差点打到了刘诗诗的脸这时就有……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网