如何使用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 開發框架是什麼?

TAG:Python | 网络安全 | Web开发 |