rails debugger 几个命令

Info

显示相关信息

  • info args # Argument variables of current stack frame

       [7, 16] in /Users/wanghao/Work/common_divisor.rb  
       7      if(x < y)  
       8        return  gcd2(y , x)  
       9      elsif(y == 0)  
       10        return x  
       11      else  
    => 12        return gcd2(x - y , y)  
       13      end  
       14    end  
       15
       16    def gcd3(x ,y)  
    (rdb:1) info args  
    x = 1071  
    y = 462  
    (rdb:1) show line  
    line tracing is off  
    (rdb:1) info line  
    Line 12 of "/Users/wanghao/Work/common_divisor.rb"  
    (rdb:1) info stack  
    --> #0 CommonDivisor.gcd2(x#Fixnum,...)  
           at line /Users/wanghao/Work/common_divisor.rb:12  
        #1  at line /Users/wanghao/Work/common_divisor.rb:52  
    
  • info breakpoints # 显示当前所有断点的状态

    (rdb:1) info breakpoints
      Num Enb What
      1   y   at /Users/wanghao/Work/common_divisor.rb:51
      2   y   at /Users/wanghao/Work/common_divisor.rb:51
      3   y   at /Users/wanghao/Work/common_divisor.rb:3
    
  • info catch # 可以被捕获的Exceptions,通过catch命令设定

  • info display # 程序结束时的输出

  • info file # 关于读取文件的内容

  • info files # 关于读取文件的时间和名字等信息

  • info global_variables # 所有全局变量

  • info instance_variables # 当前frame的示例变量

  • info line # 当前文件的当前行有关信息

        [4, 13] in /Users/wanghao/Work/common_divisor.rb
        4    end
        5
        6    def gcd2(x , y)
        7      if(x < y)
        8        return  gcd2(y , x)
     => 9      elsif(y == 0)  
       10        return x
       11      else
       12        return gcd2(x - y , y)
       13      end  
       (rdb:1) info line
        Line 9 of "/Users/wanghao/Work/common_divisor.rb"
        (rdb:1) info stack
        --> #0 CommonDivisor.gcd2(x#Fixnum,...)
        at line /Users/wanghao/Work/common_divisor.rb:9
        #1  at line /Users/wanghao/Work/common_divisor.rb:52
    
  • info locals # 局部变量信息

    (rdb:1) info locals
        x = 1071
        y = 462
    
  • info program # 程序执行状态信息

  • info stack # 相关stack信息

    (rdb:1) info stack
    --> #0 CommonDivisor.gcd(x#Fixnum,...)
        at line /Users/wanghao/Work/common_divisor.rb:3
    #1 CommonDivisor.gcd(x#Fixnum,...)
        at line /Users/wanghao/Work/common_divisor.rb:3
    #2  at line /Users/wanghao/Work/common_divisor.rb:51
    
  • info thread # Thread相关信息

  • info threads # Thread相关信息
    (rdb:1) info threads
    + 1 #<Thread:0x007fc7ab0677a8 run> /Users/wanghao/Work/common_divisor.rb:3
    !2 #<Debugger::DebugThread:0x007fc7ab364b40 sleep>

  • info variables # 局部变量示例变量信息

    self = ...  
    x = 462  
    y = 147  
    
Set

设定ruby-debug的环境,Boolean变量可以设定为on off或者1 0 设定变量可以用show显示

  • set annotate # 设定注释等级

  • set args # 设定变量列表,用来传递给运行环境

  • set autoeval # 在不能直接输出的表达式,进行eval计算

      (rdb:1) set autoeval 0
       autoeval is off
      (rdb:1) fib2
      *** Unknown command: "fib2".  Try "help".
      (rdb:1) fib1
      *** Unknown command: "fib1".  Try "help".
      (rdb:1)
      (rdb:1) fib1=0\; fib2=1\; 5.times {|temp| temp=fib1\; fib1=fib2\; fib2 += temp }
      *** Unknown command: "fib1=0; fib2=1; 5.times {|temp| temp=fib1; fib1=fib2; fib2 += temp }".  Try "help".
      (rdb:1) set autoeval 1
      autoeval is on
      (rdb:1) fib1=0\; fib2=1\; 5.times {|temp| temp=fib1\; fib1=fib2\; fib2 += temp }
      5
      (rdb:1) fib1
      5
      (rdb:1) fib2
      8
    
  • set autolist # 在每个breakpoint时执行list

  • set autoirb # 任何时候只要stop则执行irb

  • set autoreload # 当代码有修改的时候,从新load

  • set basename # 设定basename只显示文件名

  • set callstyle # 设定显示变量格式

  • set debuggertesting # 用于测试debugger自身

  • set forcestep # 保证'next/step'命令总是能向新行移动

  • set fullpath # 在frames中显示文件的完整路径名

  • set history # Generic command for setting command history parameters

  • set keep-frame-bindings # Save frame binding on each call

  • set linetrace+ # Set line execution tracing to show different lines

  • set linetrace # Set line execution tracing

  • set listsize # Set number of source lines to list by default

  • set trace # Display stack trace when 'eval' raises exception

  • set width # Number of characters the debugger thinks are in a line

Thread

用于线程操作

th[read] l[ist] # 列出所有的线程
th[read] stop <nnn> # 停止指定线程
th[read] resume <nnn> # 恢复指定线程
th[read] [sw[itch]] <nnn> # 切换执行环境到指定线程
th[read] [cur[rent]] # 显示当前线程

Trace

tr[ace] (on|off) set trace mode of current thread
tr[ace] (on|off) all set trace mode of all threads

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容