如何使用PyCharm開發和調試伺服器上的代碼
0x00 前言
之前調試Python程序的時候一直都使用的是pdb(一個Python內置的調試模塊),然後拿本地的源碼進行比對,偶然聽 @周佩雨 ph師傅提到可以使用PyCharm對遠端伺服器上的代碼進行調試,同時還可以對多進程類程序進行調試(pdb用起來會很糙)便查了下相關資料,整理了一份筆記。
0x01 基礎環境
Ubuntu 16.04.3 LTS
Python 2.7.12
Cobra 2.0.0-alpha.5
pdb
0x02 如何將伺服器中的文件同步到本地PyCharm中
實現遠程調試,就是本質上就是通過兩塊去實現:
1、調用遠程伺服器上的Python解釋器
2、將本地修改的代碼或debug信息與伺服器中的對應文件及實時同步
整體的思路就是通過本地IDE編輯代碼或下斷點->將本地相應指令同步到伺服器->通過遠程debug實現對程序的調試。
配置sftp實現文件同步
第1步:選擇【Tools】->【Deployment】->【Configuration】
點擊加號,輸入【Name】,類型選擇【SFTP】,點擊【OK】
配置IP、埠、用戶名密碼等信息,點擊【OK】
配置本地路徑與伺服器項目路徑的映射信息,點擊【OK】
第2步:將本地文件與伺服器文件互相同步
0x03 通過PyCharm進行遠程調試
第1步:配置遠程Python解釋器,點擊【File】,點擊【Settings】
點擊【OK】即可。
第2步:下斷點
第3步:對命令行類的Python程序進行調試,配置【Debug Configuration】信息
第4步:開始調試
多次的F7(進入函數)、F8(下一步)已經進入到通過多線程調用的函數中
Bingo!
0x04 後記
工欲善其事,必先利其器。本需求最初是想調試Cobra,奈何其在漏掃緩解採用了多進程的方式,pdb調試起來很糙,會直接跳過這段代碼。故向大佬請教,被告知可以使用PyCharm進行調試,於是做了相關的學習,不得不說GUI的確實比CLI用的爽!而且調試多進程的代碼炒雞方便!
0x05 參考鏈接
使用PyCharm進行遠程開發和調試
代碼審計工具 Cobra 源碼分析(一)
推薦閱讀:
※最近傳的文章「HTML6 展望」中的命名空間有什麼意義?
※怎麼能看出一個網站用什麼後台語言開發的
※作為一名前端開發人員,有哪些值得一讀的js代碼?
※你最喜歡的 Web 開發框架是什麼?