<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    RPDB-讓PDB(Python調試工具)支持遠程調試功能

    軟件已更新,最新請查看:https://code.google.com/p/stonelab/wiki/pdbx

    軟件介紹

    rpdb擴展了pdb,讓pdb支持遠程調試功能。

    使用了rpdb的python腳本在遠程啟動,本地通過telnet方式連接上rpdb提供的調試端口,接下來的操作和本地完全一致。

    使用說明

    • 下載
    • wget https://stonelab.googlecode.com/files/rpdb-0.1.0.tar.gz 

      有兩個文件:rpdb.py:擴展pdb的類庫; example.py 演示程序
    • 安裝
    • 將rpdb.py拷貝到PYTHONPATH即可,或者直接拷貝rpdb.py上內容到你的python腳本即可(程序非常小巧,30+代碼行)
    • 演示
    • pdb = Rpdb()         # 類似于pdb=Pdb()
      pdb = Rpdb(8787) # 指定遠程調試端口號
      pdb.set_trace() #設置斷點
      如example.py中程序:
      #!/usr/bin/python

      from rpdb import Rpdb
      from random import randint
      from time import sleep

      def add(i, j):
          r
      = i + j
         
      return r

      def main():
          pdb
      = Rpdb()
         
      # pdb = Rpdb(9999) # debug port:9999
          pdb
      .set_trace()
         
      while True:
              i
      = randint(1,10)
              j
      = randint(1,10)
              r
      = add(i, j)
             
      print r
              sleep
      (1)

      if __name__ == '__main__':
          main
      ()
      本地終端輸入: telnet xxx.xxx.xxx.xxx 8787
      telnet 127.0.0.1 8787
      Trying 127.0.0.1...
      Connected to localhost.
      Escape character is '^]'.
      > /Users/stone/Tmp/baidu/rpdb/example.py(15)main()
      -> while True:
      (Pdb) l
       
      10    
       
      11     def main():
       
      12         pdb = Rpdb()
       
      13         # pdb = Rpdb(9999) # debug port:9999
       
      14         pdb.set_trace()
       
      15 ->     while True:
       
      16             i = randint(1,10)
       
      17             j = randint(1,10)
       
      18             r = add(i, j)
       
      19             print r
       
      20             sleep(1)
      (Pdb) n
      > /Users/stone/Tmp/baidu/rpdb/example.py(16)main()
      -> i = randint(1,10)
      (Pdb) b 19
      Breakpoint 1 at /Users/stone/Tmp/baidu/rpdb/example.py:19
      (Pdb) c
      > /Users/stone/Tmp/baidu/rpdb/example.py(19)main()
      -> print r
      (Pdb) p r
      11
      (Pdb) q
      Connection closed by foreign host.
      操作和pdb完全一致。

    PDB常用命令

    命令介紹
    h(elp) command?輸入h或者help 列出pdb支持的所有命令, h command? 介紹指定命令
    w(here)列出當前調試所在行,一般會使用 l(ist)
    l(ist) [first[, last]]列出源代碼信息
    s(tep)進入函數體
    n(ext)執行下一行代碼
    c(ont(inue))繼續,直到遇到下一個斷點
    r(eturn)執行到函數體結束那行
    b(reak)設置斷點,可以是代碼行號,方法名, 還可以加進入條件
    tbreak設置臨時斷點,進入一次后,自動消失
    cl(ear)取消斷點
    disable讓斷點失效
    enable讓斷點生效
    ignore忽略斷點n次
    condition給斷點添加條件,符合條件的才進入斷點
    j(ump) lineno跳掉指定行
    a(rgs)打印函數體參數信息
    p expression打印變量
    pp expression同上,打印得漂亮一些
    ! statement執行代碼,非常有用,可用來修改變量值
    q(uit)退出調試(pdb的quit很黃很暴力)

    posted on 2013-03-21 16:19 stone2083 閱讀(9783) 評論(0)  編輯  收藏 所屬分類: python

    主站蜘蛛池模板: 亚洲国产V高清在线观看| 成人免费午夜视频| 亚洲精品夜夜夜妓女网| 免费毛片毛片网址| 亚洲?V无码乱码国产精品| 免费国产va在线观看| 亚洲第一页综合图片自拍| 免费无码午夜福利片69| 中文字幕精品亚洲无线码一区| 一级一级一片免费高清| 国产亚洲精品一品区99热| 青青草无码免费一二三区| 亚洲视频一区二区三区| 美女网站免费福利视频| 亚洲日韩国产一区二区三区在线| 日韩视频在线免费观看| 免费在线观看自拍性爱视频| 亚洲欧洲自拍拍偷午夜色无码| 四虎国产成人永久精品免费| 亚洲18在线天美| 四虎永久在线精品免费观看地址| 香蕉免费看一区二区三区| 亚洲丝袜美腿视频| 色吊丝最新永久免费观看网站| rh男男车车的车车免费网站 | 午夜在线免费视频 | 最近2019年免费中文字幕高清| 亚洲乱码中文论理电影| 永久免费bbbbbb视频| 国内精品99亚洲免费高清| 亚洲校园春色小说| 亚洲第一黄片大全| 黄+色+性+人免费| 乱人伦中文视频在线观看免费| 亚洲成av人在线视| 成年女人看片免费视频播放器| 中文字幕免费在线观看动作大片| 亚洲视频中文字幕在线| 亚洲伦乱亚洲h视频| 曰曰鲁夜夜免费播放视频| yellow视频免费在线观看|