查看: 2799|回复: 3

[已经过期] 如何调试游戏脚本

[复制链接]
梦石
0
星屑
3405
在线时间
32 小时
注册时间
2015-4-6
回帖
2
发表于 2015-5-23 16:47:53 | 显示全部楼层 |阅读模式

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

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

×
请教各位有经验的朋友,有什么工具可以单步调试我们的游戏脚本吗?
每次都在脚本中做输出实在是很麻烦

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-5-23 17:31:56 | 显示全部楼层
本帖最后由 taroxd 于 2015-5-23 17:40 编辑

给你一个来自Ruby文档的例子。不过一般来说Ruby不怎么需要单步调试。有一些好用的调试gem但是放到RGSS就不太方便

[pre lang="ruby"]class Test
  def test
    a = 1
    b = 2
  end
end

set_trace_func proc { |event, file, line, id, binding, classname|
  printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
}
t = Test.new
t.test

__END__

下面是输出:

c-return F:/Documents/test.rb:8  set_trace_func   Kernel
    line F:/Documents/test.rb:11                    
  c-call F:/Documents/test.rb:11        new    Class
  c-call F:/Documents/test.rb:11 initialize BasicObject
c-return F:/Documents/test.rb:11 initialize BasicObject
c-return F:/Documents/test.rb:11        new    Class
    line F:/Documents/test.rb:12                    
    call F:/Documents/test.rb:2        test     Test
    line F:/Documents/test.rb:3        test     Test
    line F:/Documents/test.rb:4        test     Test
  return F:/Documents/test.rb:5        test     Test[/pre]

set_trace_func 的详细用法请参考 Ruby 文档(非 F1)

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
3405
在线时间
32 小时
注册时间
2015-4-6
回帖
2
 楼主| 发表于 2015-5-23 17:40:58 | 显示全部楼层
谢谢,这个方法只能查看调用栈信息,
但还是没有办法断点调试并查看变量值,这样来得更方便
不知道是不是可以导入Ruby IDE,如果可以的话,能不能推荐一款好用的IDE及导入方法
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-5-23 18:11:32 | 显示全部楼层
本帖最后由 taroxd 于 2015-5-23 18:16 编辑
eticwu 发表于 2015-5-23 17:40
谢谢,这个方法只能查看调用栈信息,
但还是没有办法断点调试并查看变量值,这样来得更方便
不知道是不是可 ...


Ruby 没什么 IDE,有也不能查看变量值。大部分 Ruby 使用者都是不用 IDE 的。

至于你要的功能,就是我楼上用线划掉的东西…… 比如用 pry (gem)可以看。不过 VA 要用 gem 还是不方便的。虽然说简单地写个查看变量的功能倒不是什么难事。

谢谢,这个方法只能查看调用栈信息

看到 binding 参数了么?那个参数里包含了所有的变量值。用法还是请参考文档。




另外,我自己是不用这个方法的,因为实在没什么必要。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部