cn18799
驱动老牛
驱动老牛
  • 注册日期2001-11-17
  • 最后登录2010-04-16
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:3302回复:6

一个程序,直接运行和调试运行都有什么区别?

楼主#
更多 发布于:2004-12-14 16:37
一个多媒体播放程序(Delphi 编写),直接运行 exe 文件时,当播放 Real 格式的文件,在特定的操作下,会产生一个无效地址访问错误。我可以准确地将该错误重现。

经查,该错误是由 ATRC.DLL (Ver 10.0.0.703) 引起的,这是 Real 的一个 AC3 音频解码器。

但是,如果在 Delphi 的 IDE 中运行程序,或者用 VC 打开该 exe 文件,再运行,将不会有任何错误产生。

虽然,我已经知道了问题出在  ATRC.DLL 本身(更新为 10.0.0.1263 就没有问题了)。

我的问题是:为什么在调试运行的时候,就没有任何错误产生?
(另备专家分)
[img]http://www.danasoft.com/vipersig.jpg[/img] [img]http://www.driverdevelop.com/forum/upload/cn18799/2002-09-28_logo.gif[/img]
gjc2000
驱动牛犊
驱动牛犊
  • 注册日期2004-08-05
  • 最后登录2005-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-14 19:30
帮你顶!
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-14 19:40
不太清楚你做的是什么东西,不过调试运行和直接运行一般来说差别仅仅是时间上的问题,如果版本相同的话。那么问题可能就出在多线程上。
cn18799
驱动老牛
驱动老牛
  • 注册日期2001-11-17
  • 最后登录2010-04-16
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-15 08:59
程序播放时使用的是 Delphi 的 TMediaPlayer 组件,该组件的源码我看了,应该是通过 Windows 的 MCI 进行播放的。Windows 在播放时通过了 DirectShow,DirectShow 在播放 Real 文件时用到了 ATRC.DLL。

所以想不明白,即便是调试程序,怎么对 ATRC.DLL 产生的影响。
[img]http://www.danasoft.com/vipersig.jpg[/img] [img]http://www.driverdevelop.com/forum/upload/cn18799/2002-09-28_logo.gif[/img]
s_6666_s_qd
驱动巨牛
驱动巨牛
  • 注册日期2004-08-14
  • 最后登录2006-07-11
  • 粉丝0
  • 关注0
  • 积分199分
  • 威望22点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-15 11:47
估计应该是地址锁存和释放的时间差问题上,调试时,调试器会把一些调试码加入到程序中一起运行,这就延缓了程序的某些位置的运行连续,造成一定的线程延时,也就使线程访问同一地址的操作得以错开,也就没了地址访问错误
lovedriver
驱动牛犊
驱动牛犊
  • 注册日期2004-11-01
  • 最后登录2005-01-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-15 12:33
这个,我也遇见过
估计,和多线程有关
但是,也不能肯定
现象,就是调试的时候是好的
热爱驱动
cn18799
驱动老牛
驱动老牛
  • 注册日期2001-11-17
  • 最后登录2010-04-16
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-17 14:54
先把分放了。
如果另有答案,另开贴给分。
[img]http://www.danasoft.com/vipersig.jpg[/img] [img]http://www.driverdevelop.com/forum/upload/cn18799/2002-09-28_logo.gif[/img]
游客

返回顶部