使用python -m pdb xxx.py进入单步调试模式,默认会在脚本的第一行可执行命令处停止。此时,通过 b function设置之后的函数断点会提示出错,从出错异常栈中可以看出,pdb是将function当做行号来识别,而函数名是字符串,转换成整形会失败,因此会提示出错。在处理转换整形失败异常时,会尝试执行 function,如果当前解析器还执行到该函数(由于是刚开始调试,相关函数尚未解析),那么在该函数上设置断点又会触发异常。那么,通过单步调试,如何开始呢?

经过多番尝试,总结这样的工程实践经验,在单步进入时,先通过 b lineno设置为期望调试的入口行号后,按c运行至此处,然后,通过b function设置后续的函数断点,设置的function要求已经过解释器解释过的。这可能是pdb单步调试的缺陷。

还有一种侵入式的调试方式就是在源代码中导入pdb模块,在需要设置断点的地方手动加上 pdb.set_trace(),通过python xx.py命令启动程序后,可直接执行到断点处,然后再单步调试下去。这样对源代码有侵入性,不怎么友好。

最新文章

  1. HTML5视频播放
  2. MySQL批量删除指定前缀表
  3. svn bug
  4. URi和Url格式
  5. weblogic 12c下jxls导出excel报错Could not initialize class org.apache.poi.xssf.usermodel.XSSFVMLDrawing
  6. easyui表单插件-包括日期时控件-列表
  7. 最最基层的ajax交互代码jquery+java之间的json跨域传递以及java的json代码返回
  8. 【Lucene3.6.2入门系列】第15节_SolrJ高亮
  9. 讨论JDK的File.equal()
  10. C#生成随机汉字
  11. linux环境下安装redis扩展
  12. BZOJ 2780: [Spoj]8093 Sevenk Love Oimaster [广义后缀自动机]
  13. Python3 获取本机 IP
  14. ucore-lab1-练习6report
  15. A1040. Longest Symmetric String
  16. linux僵尸进程产生的原因以及如何避免产生僵尸进程
  17. go语言之行--结构体(struct)详解、链表
  18. 第11课 enum、sizeof、typedef 分析
  19. new与alloc/init的区别
  20. python: local variable 'xxx' referenced before assignment

热门文章

  1. (转!)MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
  2. HDU4183 Pahom on Water(来回走最大流,一个点只经过一次)
  3. String中intern方法的作用
  4. 201671030120 王晶 实验十四 团队项目评审&课程学习总结
  5. NYOJ104-最大和-(前缀和)
  6. 华三NAT总结
  7. UFUN 函数 UF_DISP (UF_DISP_create_image ) (如何把显示部件部分截图放到指定的文件夹中)
  8. Python 检查代码占用内存 工具和模块
  9. 鸿蒙OS与手机系统
  10. luoguP4173 残缺的字符串 FFT