2007年2月23日星期五

浏览器内嵌播放器错误(勉强解决,供参考)

  [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 条评论:

Unknown 说...

怨念的调试器,常用的有那些,兼顾linux和windows?

[tc]天驰 说...

还兼顾操作系统?没见过。

Unknown 说...

windows下有些什么,linux下有些什么。
是让你兼顾w&l给介绍一下。

[tc]天驰 说...

我也不是调试高手,只不过半路飘出来用一下。

Linux的CLR下,我只会用gdb看看缓冲区溢出的几个example,别的不会。

Win早先有个TRW现在不能用了。我觉得OllyDBG是不错的,偶尔拿来反汇编。这次用的是VS 2005自带的调试器,这个调试器似乎缺乏许多功能。