欢迎光临lce.cc,我是一名技术出身的互联网产品经理和创业者,对产品、运营、设计、建筑、互联网、路由器、区块链等领域都有较深入的研究,对历史、哲学、心理学、政治也比较感兴趣,欢迎同样有兴趣的一起交流。我的邮箱:a#lce.cc

rubymine搭建sketchup调试环境时遇到的一个神奇问题

代码 lce 219℃ 0评论

我是参考这里搭建的调试环境:https://github.com/SketchUp/sketchup-ruby-api-tutorials/wiki/RubyMine-Debugger-Setup

sketchup-debug.rb的代码一直没修改过,环境配置也没有修改过。昨天一切都是正常的,然而今天就出问题了。

每次点击调试时,都会提示这样的错误:

../tools/sketchup-debug.rb:32:in `spawn’: Invalid argument – “C:\Program Files/SketchUp/SketchUp 2019/SketchUp.exe” -rdebug “ide port=7000” (Errno::EINVAL)
from ../tools/sketchup-debug.rb:32:in `<main>’

本以为可能是参数不对,于是我找到sketchup-debug.rb这个文件,进行了修改:

  ...
  sketchup = File.exist?(sketchup_64) ? sketchup_64 : sketchup_32
  sketchup_command = %("#{sketchup}" #{debug_args})
  sketchup_command = %("#{sketchup}")
  #sketchup_command = "C:\\Program Files\\SketchUp\\SketchUp 2019\\SketchUp.exe"
  puts sketchup_command
end

# We then start SketchUp with the special flag to make it connect to the
# debugger on the given port.
spawn(sketchup_command)

也就是把spawn要执行的命令改成不带参数的形式,也就是只执行sketchup这个变量。仍然提示:

“C:\Program Files/SketchUp/SketchUp 2019/SketchUp.exe”
../tools/sketchup-debug.rb:35:in `spawn’: Invalid argument – “C:\Program Files/SketchUp/SketchUp 2019/SketchUp.exe” (Errno::EINVAL)
from ../tools/sketchup-debug.rb:35:in `<main>’

既然这样,我只好再修改sketchup-debug.rb这个文件:

  ...
  sketchup = File.exist?(sketchup_64) ? sketchup_64 : sketchup_32
  sketchup_command = %("#{sketchup}" #{debug_args})
  sketchup_command = %("#{sketchup}")
  sketchup_command = "C:\\Program Files\\SketchUp\\SketchUp 2019\\SketchUp.exe"
  puts sketchup_command
end

# We then start SketchUp with the special flag to make it connect to the
# debugger on the given port.
spawn(sketchup_command)

这样执行后仍然报错,提示找不到文件,如下:

C:\Program Files\SketchUp\SketchUp 2019\SketchUp.exe
../tools/sketchup-debug.rb:35:in `spawn’: No such file or directory – C:\Program Files\SketchUp\SketchUp 2019\SketchUp.exe (Errno::ENOENT)
from ../tools/sketchup-debug.rb:35:in `<main>’

在我百思不得其解,试了一次又一次,束手无策的时候,突然想到,会不会是因为和昨晚把SketchUp.exe改成管理员模式运行导致?

赶紧找到SketchUp.exe,右键检查果然是勾选了以管理员身份运行此程序。

取消勾选,再点击调试,如果自定义sketchup_command的情况下:

sketchup_command = "C:\\Program Files\\SketchUp\\SketchUp 2019\\SketchUp.exe"

仍然会提示之前文件或目录不存在的错误。

不过当sketchup_command这样定义的时候:

sketchup_command = %("#{sketchup}" #{debug_args})

或者

sketchup_command = %("#{sketchup}")

以上两种情况下,执行都不会再报错了。

虽然我仍然没有搞明白内在的原因,但是至少现在解决了这个问题。先记录一下,以便后续研究,也方便遇到同样问题的人。

 

转载请注明:长风破浪会有时,直挂云帆济沧海 » rubymine搭建sketchup调试环境时遇到的一个神奇问题

喜欢 (1)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址