在Pycharm中断点调试本机docker程序
1.首先,开启一个终端(后面简称服务器终端),这里以mythril为例
运行docker程序
docker run -it -p 2222:22 test/mythril
修改服务器终端的root密码
passwd root
安装ssh 服务端
apt-get install openssh-server --fix-missing
启动服务
/etc/init.d/ssh start
确认是否启动成功
ps -e |grep ssh
如果出现sshd服务,则启动成功
2.开启另一个终端(后面简称客户端终端)安装ssh
apt-get update
apt-get install ssh
3.修改docker容器中的sshd_config 文件
vim /etc/ssh/sshd_config
将此文件中的PermitRootLogin,PasswordAuthentication属性值改为
PermitRootLogin yes
PasswordAuthentication yes
注意如果这两行开头有注释(#号)要去掉,保存此文件后,重启sshd 服务
/etc/init.d/ssh restart
4.尝试使用ssh客户端连接
ssh root@localhost -p 2222
如果出现Host key verification failed.可以删掉客户端配置文件“~/.ssh/known_hosts”
如果ssh能够连接成功,那么使用Pycharm基本上就不会出现问题
5.打开Pycharm专业版,创建一个项目(不要删除那个venv文件夹),非专业版没有远程调试的功能

6.Tool--->Deployment--->Configuration
点击+,配置如下,由于我是调试本纪上的docker,所以host在这里是127.0.0.1,
Root Path 就是你的项目在docker容器中的位置(/usr/local/lib/python3.6/dist-packages/mythril-0.21.15-py3.6.egg)。

点击 Test Connection,连接成功

点击Mapping,配置如下

Tool--->Deployment--->Browse Remote Host 即可以看见远程服务器上的程序文件了

右键绿色部分,选择download from here,可以看到工程文件已经同步到左侧
设置Project Interperter为远程服务器上的环境
file-》setting-》Project: mythril_debug_01-》Project Interpreter
选择设置图标,点击ADD
选择create

选择next

Interpreter是服务器端python的路径,选择finish

大功告成,可以使用断点进行调试了
