ruby是脚本语言,我也是刚开始接触,上来发现:这个东西怎么调试???如果只打log的话,有些东西没办法打出来。然后在网上参考了一些文章,写得方法都是对的。但是对于我这么一个新手,看得还是一脸懵逼。这里要感谢冬瓜哥的指导,我终于摸索出怎么调试了。下面用最白话的语言写教程
1、需要安装VSCode.
2、打开VSCode。安装VSCode的Ruby插件
2、在命令行下输入下面命令,安装调试工具
gem install ruby-debug-idegem install debase
1、先新建一个空目录debugRuby,因为VSCode需要用目录导入。然后在里面新建一个ruby的源码文件,我们先叫main.rb吧。里面先输入一些东西,举个栗子
str = "hello, ruby"puts str
2、debugRuby目录下,再创建一个文件,文件命名为gemfile. 里面输入下面的内容
source ''gem 'ruby-debug-ide'gem 'debase'
3、debugRuby目录下,再创建一个目录,目录名字叫 .vscode ,然后在 .vscode 里面再创建一个名字叫 launch.json 的文件,文件里面输入下面的内容
{ "configurations": [ { "name": "Debug CocoaPods Plugin with Bundler", "showDebuggerOutput": true, "type": "Ruby", "request": "launch", "useBundler": true, "cwd": "${workspaceRoot}", //cwd代表运行的目录,发现好像必须和gemfile一个目录。${workspaceRoot}指的是VSCode工程的目录。你也可以指定一个绝对路径 "program": "${workspaceRoot}/main.rb", //运行的ruby代码 "stopOnEntry": false } ]}
4、打开终端,cd到debugRuby目录下,输入下面命令。如果没报错的话就行了
bundle install
5、用VSCode打开debugRuby目录,或者直接将目录拖到VSCode就行
6、在VSCode里面打开我们的main.rb,然后在行号左边单击下断点
7、按F5运行,这个时候就可以到达断点处,鼠标光标放上去就可以看到这个变量的值了。目前发现还是有缺陷的,有些全局变量或者模块变量无法看到。VSCode左边还有调用堆栈和一些当前上下文的变量可以查看。这些就自行摸索了。
先去GitHub上下载cocoapods源码,我这里下载到桌面。然后切换到一个稳定的版本,比如1-7-stable。然后执行下面命令安装好submodule
git submodule update --init --recursive
和上面一样,需要搭建好一个环境,创建一个空目录debugCocoaPods,然后添加gemfile,里面输入下面东西
source 'https://rubygems.org'gem 'ruby-debug-ide'gem 'debase'gem 'cocoapods', :path=> '~/Desktop/CocoaPods' # 这个是cocoapods源码路径,到最外层的文件夹
和之前调试一样,这里也需要搞一个launch.json,里面输入的东西有些区别
{ "configurations": [ { "name": "Debug CocoaPods Plugin with Bundler", "showDebuggerOutput": true, "type": "Ruby", "request": "launch", "useBundler": true, "cwd": "${workspaceRoot}", "program": "~/Desktop/CocoaPods/bin/pod", //这里指明的是cocoapods源码里面的bin目录下的pod程序 "args": ["install"], //这里指明是pod程序的参数 install "stopOnEntry": false } ]}
然后运行 bundle install,没报错的话,然后再打开VSCode,这里再把cocoapods源码目录拖到VSCode的文件目录里面去,选择add Folder就行了,不需要copy
因为我们运行的是pod install命令,需要podfile,否则启动立刻就会报错。所以我们还必须在这个debugCocoaPods目录下创建一个xcode工程,然后添加podfile。弄完之后,回到VSCode,在cocoapods源码的lib目录下,找到installer.rb,我们在 install! 方法这里下一个断点。然后按F5运行,就可以看到进入到cocoapods源码了。
2、当报端口被占用的错误后,即便关闭了所以的调试,再次按F5,有时候会出现调试没有效果的情况。这个时候可以关闭VSCode,并在任务管理器里面找到ruby的进程杀死。然后再重试。