查看: 3343|回复: 9

[已经过期] 请问下如何根据运行游戏时的报错提示定位script脚本的错误

[复制链接]
梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
发表于 2019-10-7 04:11:49 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
每次测试运行游戏报错都不知道是脚本里哪里出错的...

所以想求个脚本,一旦报错就能定位出错误的语句和位置

大神们要是有现成的话就分享个给咱吧,多谢了!

梦石
0
星屑
9862
在线时间
580 小时
注册时间
2017-9-28
回帖
203
发表于 2019-10-7 11:10:43 | 显示全部楼层
1. 修改 Main,在最后一个 end 前添加一段捕捉错误的代码:
  1. rescue Exception => e
  2.   $@.shift if $@
  3.   msg = ["#{e.class}: #{e.message}"]
  4.   e.backtrace.each do |c|
  5.     break if c[':1:']
  6.     if c =~ /^(.+):(\d+)(?::in `(.*)')?$/
  7.       file, line, code = $1, $2, $3
  8.       next if file == __FILE__
  9.       cd = Regexp.escape(File.join(Dir.getwd, ''))
  10.       file = file.sub(/^#{cd}/, '')
  11.       if inner = file =~ /^Section(\d+)$/
  12.         id = $1.to_i
  13.         file = "[#{$RGSS_SCRIPTS[id][1]}]"
  14.       end
  15.       code = code && ": #{code}"
  16.       msg << "   #{file} #{line}#{code}"
  17.     else
  18.       msg << "   #{c}"
  19.     end
  20.   end
  21.   print msg.join("\n")
复制代码
和本来就有的 rescue Errno::ENOENT 对齐放
2.修改 Interpreter 7,在 def command_355 对应的 end 前添加以下代码,方便输出报错事件的位置
  1.   rescue Exception
  2.     event = get_character(@event_id)
  3.     print "Map: #{@map_id}, Event: #{@event_id} (#{event.x}, #{event.y})"
  4.     raise
复制代码

效果大致如下:
Snipaste_2019-10-07_11-09-04.png
Snipaste_2019-10-07_11-09-24.png
Snipaste_2019-10-07_11-09-57.png

点评

大佬你这个报错脚本不能精确到行,只能精确到类或者方法啊  发表于 2019-10-17 12:23

评分

参与人数 1赞 +1 收起 理由
taeckle + 1 大神威武!请受小弟一拜!

查看全部评分

喵喵喵
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-10-7 15:17:31 | 显示全部楼层
本帖最后由 soulsaga 于 2019-10-7 15:20 编辑

可以定位事件脚本的事件位置么..
回复

使用道具 举报

梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
 楼主| 发表于 2019-10-8 23:15:22 | 显示全部楼层
hyrious 发表于 2019-10-7 11:10
1. 修改 Main,在最后一个 end 前添加一段捕捉错误的代码:
和本来就有的 rescue Errno::ENOENT 对齐放
2. ...

求大神再发一个定位出脚本出错的位置吧
回复

使用道具 举报

梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
 楼主| 发表于 2019-10-15 03:01:41 | 显示全部楼层
本帖最后由 taeckle 于 2019-10-15 03:02 编辑
soulsaga 发表于 2019-10-7 15:17
可以定位事件脚本的事件位置么..


大神请问下报错定位可以到行的脚本你有嘛,比如像这个:

报错.PNG

点评

默认就有行..默认就有行..说多少次都好..默认就有行..  发表于 2019-10-17 12:49
默认的没如此精准定位到行啊  发表于 2019-10-15 22:04
这个不是默认就有么...  发表于 2019-10-15 09:57
回复

使用道具 举报

梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
 楼主| 发表于 2019-10-17 12:22:24 | 显示全部楼层
继续求一个能定位到行的报错脚本................


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部