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 参考链接