[tc]电脑上的浏览器最近出了奇怪的问题,访问某些包含音乐播放器的网站时会出现Windows的错误提示,并关闭浏览器。以至于[tc]自己的Blog都无法访问的严重后果。今天[tc]忍无可忍,奋战一刻钟,勉强解决问题,下面是过程。
[谁在作怪]
第一反应是IE不稳定,跑去从镜像里抠出以前的IE,不行。用FF2试了一下,不行。
第二反应是暴风影音,换了老版本(其实还不够老),不行。
第三反应,mpc的Bug,换了一个mpc以前的主程序,不行。又卸载暴风影音,用WMP 10居然好了!这样不算解决问题!又把暴风影音装回来(废话!当然是不一样的版本!)也OK!
[什么毛病]
满心欢喜。其实这是凌晨发生的事。现在是同一天的晚上,问题又来了,现象一样。
OK,耐下心,凌晨和现在什么区别?访问的文件不同![tc]遂想起这一版的暴风影音有个毛病:文件格式不支持的时候会异常退出。
接下来的几分钟十分无聊,就不写了。
[祭出必杀]
[tc]的必杀技是会用调试器。于是在问题再一次发生时,用Visual Studio自带的调试器打断,发现是一处除数为零错误。
03DBBB98 div eax,ecx
此时ecx=0。经查发现03DBBB98属于SHNTrans.ax。
一阵google,净是些菜鸟抱怨系统不稳定的帖子,无聊。
[再靠自己]
把SHNTrans.ax打开一看,发现是个DLL文件。打开之,字符串列表中有一行:Shorter Compressed Audio。放到暴风影音的滤镜列表中一看,叫做SHN to wave Filter。
第一反应,又没有新版本?无果。
第二反应,不要行不行?我又不听SHN文件,这个滤镜用不上。
删除该文件,问题解决。
[结论]
DirectShow好奇怪……

4 条评论:
怨念的调试器,常用的有那些,兼顾linux和windows?
还兼顾操作系统?没见过。
windows下有些什么,linux下有些什么。
是让你兼顾w&l给介绍一下。
我也不是调试高手,只不过半路飘出来用一下。
Linux的CLR下,我只会用gdb看看缓冲区溢出的几个example,别的不会。
Win早先有个TRW现在不能用了。我觉得OllyDBG是不错的,偶尔拿来反汇编。这次用的是VS 2005自带的调试器,这个调试器似乎缺乏许多功能。
发表评论