<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

    主站蜘蛛池模板: 亚洲精品蜜夜内射| 国偷自产一区二区免费视频| 国产a不卡片精品免费观看 | 免费人人潮人人爽一区二区| 国产亚洲无线码一区二区| 日本黄网站动漫视频免费| 激情婷婷成人亚洲综合| 国产V亚洲V天堂无码久久久| 成全影视免费观看大全二| 波霸在线精品视频免费观看| 亚洲人成电影在线观看青青| 一本久久a久久精品亚洲| 国产成人免费高清激情视频| 香蕉免费在线视频| 亚洲精品无码av片| 亚洲午夜在线电影| 亚洲国产香蕉人人爽成AV片久久| 3344免费播放观看视频| 黄床大片30分钟免费看| 亚洲av一本岛在线播放| 亚洲国产精品VA在线观看麻豆| 免费无码黄动漫在线观看| 一区二区三区观看免费中文视频在线播放| 亚洲AV香蕉一区区二区三区| 亚洲黄色网址大全| 国产亚洲精久久久久久无码77777| 成年18网站免费视频网站| 99re在线视频免费观看| 五级黄18以上免费看| 亚洲欧美中文日韩视频| 亚洲日本在线播放| 亚洲AV日韩AV高潮无码专区| 亚洲第一成人影院| 日韩成人免费视频播放| 18禁止观看免费私人影院| 国产精品99精品久久免费| 中美日韩在线网免费毛片视频| 亚洲综合一区二区三区四区五区| 亚洲精品免费在线观看| 亚洲精品乱码久久久久久久久久久久 | 亚洲码欧美码一区二区三区|