vscode断点调试_Ruby调试

ruby是脚本语言,我也是刚开始接触,上来发现:这个东西怎么调试???如果只打log的话,有些东西没办法打出来。然后在网上参考了一些文章,写得方法都是对的。但是对于我这么一个新手,看得还是一脸懵逼。这里要感谢冬瓜哥的指导,我终于摸索出怎么调试了。下面用最白话的语言写教程

准备工具

1、需要安装VSCode.

2、打开VSCode。安装VSCode的Ruby插件

7b2c1fa5e4061df3b1cc84dfd549e544.png

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,然后在行号左边单击下断点

008343bf0a9f1868af98edc0935a80f9.png

7、按F5运行,这个时候就可以到达断点处,鼠标光标放上去就可以看到这个变量的值了。目前发现还是有缺陷的,有些全局变量或者模块变量无法看到。VSCode左边还有调用堆栈和一些当前上下文的变量可以查看。这些就自行摸索了。

34a621f4d65edc0f149b68c51383c3ec.png


实践,调试cocoapods源码

单看cocoapods源码真的一头雾水,连入口都难找,但是配合调试,发现就简单很多了。尤其是有上下文和调用堆栈。下面就来说怎么调试cocoapods源码

先去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源码了。

4d4991f03784dee2d49c055ffcf0831a.png

一些坑

1、这个ruby调试工具只支持一个工程同时开始调试。如果你同时启动两个工程的调试,第二个会报端口被占用的错误。

2、当报端口被占用的错误后,即便关闭了所以的调试,再次按F5,有时候会出现调试没有效果的情况。这个时候可以关闭VSCode,并在任务管理器里面找到ruby的进程杀死。然后再重试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值