服务器上调试程序 pdb命令调试

以前写python一直用pycharm,调试啥的比较方便,最近要在远程服务器上调试一些程序,只有一个控制台就可以用pdb进行调试了。常用的只有几个命令。


  • break 或 b           设置断点
  • continue 或 c           继续执行程序
  • list 或 l                   查看当前行的代码段
  • step 或 s                   进入函数
  • return 或 r        执行代码直到从当前函数返回
  • exit 或 q                  中止并退出
  • next 或 n              执行下一行
  • pp                        打印变量的值
  • help                          帮助

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。

使用的时候要import pdb再用pdb.set_trace()设置一个断点,运行程序的时候就会停在这。

调试步骤:

1、在调试的地方设置断点

import pdb


pdb.set_trace() #  设置断点

2、(Pdb) n 进入下一步
3、(Pdb) list 打印代码
4、(Pdb) p b 打印变量
5、(Pdb) s 进入函数
6、(Pdb) !b=“afdfd” !动态改变变量值
7 、(Pdb) q 退出

常用命令:

  • l : 查看运行的代码段。
(Pdb) l
125                 if self.is_cuda:
126                     outputs.append(Variable(data.cuda()))
127                 else:
128                     outputs.append(Variable(data))
129             pdb.set_trace()
130  ->         return tuple(outputs)
131  
132  
133     class CaffeMultiBoxLoss(nn.Module):
134         def __init__(self, layer, *input_shapes):
135             super(CaffeMultiBoxLoss, self).__init__()
(Pdb) c
forward_backward time: 1948.931108 1948.931108
> /data/zyj/caffe2pytorch/caffe_layers.py(119)forward()
-> data = self.net.blobs[name].data

l + 起始行号,就可以查看行号的上下五行。

l + 起始行号 结束行号,可以查看这么一段。

按完l继续按回车键可以继续往下查看。

  • n :运行到下一条语句。
(Pdb) n
> /data/zyj/caffe2pytorch/caffe_layers.py(120)forward()
-> if self.data_save_debug:
  • s : 跳转到函数内部。
  • pp + 变量 : 打印变量的值
  • c : 运行到下个断点
  • r : 运行到函数退出。
(Pdb) r
--Return--
>n^H /data/zyj/caffe2pytorch/caffe_layers.py(130)forward()->(Variable...(GPU 0)]
, Variable...(GPU 0)]
)
-> return tuple(outputs)
  • help + [命令]: 帮助。
(Pdb) help

Documented commands (type help <topic>):
========================================
EOF    bt         cont      enable  jump  pp       run      unt   
a      c          continue  exit    l     q        s        until 
alias  cl         d         h       list  quit     step     up    
args   clear      debug     help    n     r        tbreak   w     
b      commands   disable   ignore  next  restart  u        whatis
break  condition  down      j       p     return   unalias  where 

Miscellaneous help topics:
==========================
exec  pdb

Undocumented commands:
======================
retval  rv
(Pdb) help n
n(ext)
Continue execution until the next line in the current function
is reached or it returns.
  • b + 行号:设置断点。
(Pdb) b 125
Breakpoint 2 at /data/zyj/caffe2pytorch/train_wider.py:125

就一个b就是是打印断点在哪。

(Pdb) b 
Num Type         Disp Enb   Where
1   breakpoint   keep yes   at /data/zyj/caffe2pytorch/train_wider.py:121
2   breakpoint   keep yes   at /data/zyj/caffe2pytorch/train_wider.py:125
  • q : 退出。
  • j + 行号 :执行到行号
(Pdb) j 119
> /data/zyj/caffe2pytorch/train_wider.py(119)<module>()
-> for test_device_id in test_device_ids:
  • w : 打印函数栈
(Pdb) w
  /data/zyj/caffe2pytorch/train_wider.py(112)<module>()
-> net.cuda()
> /home/zyj/anaconda2/lib/python2.7/site-packages/torch/nn/modules/module.py(216)cuda()
-> return self._apply(lambda t: t.cuda(device))
  • cl + 断点号: 清除断点
(Pdb) b 
Num Type         Disp Enb   Where
1   breakpoint   keep yes   at /data/zyj/caffe2pytorch/train_wider.py:121
2   breakpoint   keep yes   at /data/zyj/caffe2pytorch/train_wider.py:125
(Pdb) cl 1
Deleted breakpoint 1
(Pdb) b
Num Type         Disp Enb   Where
2   breakpoint   keep yes   at /data/zyj/caffe2pytorch/train_wider.py:125

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当PyCharm连接服务器调试Python代码报错时,可能有以下几个原因及解决办法: 1. 服务器配置问题:确保服务器上已经安装了Python解释器和相应的依赖库,并且版本兼容。可以通过在服务器上运行`python --version`来确认Python版本。 2. 服务器网络问题:确保服务器能够正常与PyCharm建立连接。可以尝试通过ping命令检查服务器的网络连通性,例如`ping 服务器地址`。如果网络连接不正常,可以联系网络管理员进行排查。 3. PyCharm设置问题:在PyCharm中,确保已经正确配置了远程服务器的连接信息。可以在PyCharm的设置中找到“Deployment”或“SSH”选项,并填写正确的服务器地址、用户名和密码等信息。 4. 服务器权限问题:确保已经在服务器上正确配置了PyCharm的访问权限。如果使用SSH连接方式,可以尝试在服务器上运行`chmod 600 ~/.ssh/authorized_keys`命令来设置密钥的权限。 5. 防火墙问题:确保服务器上的防火墙设置允许PyCharm的访问。可以通过查看服务器的防火墙规则,例如iptables或ufw命令,确定是否有相关的限制。 6. 日志和错误信息:查看PyCharm的日志以及报错信息,可以帮助定位问题的具体原因。可以在PyCharm的Help菜单中选择“Show log in Explorer/Finder”打开日志文件夹,查找相关信息。 通过逐步排查以上可能的问题,可以解决PyCharm连接服务器调试Python代码报错的情况。如果问题仍然存在,可以尝试使用其他工具或方法进行调试,或者联系PyCharm的技术支持进行咨询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值