如何在调试开源应用程序时避免留下打印或pdb语句,直到调试完成?

2024-05-23 23:00:07 发布

您现在位置:Python中文网/ 问答频道 /正文

有时在使用开源软件开发时,您需要阅读它的源代码(特别是zope/plone)。很多时候,我需要编写print语句、调试调用(importpdb)或注释try/except子句,这些都是您可以命名的。在

有时我在试图查找问题时打开了许多文件,有时我忘记删除这些打印/调试更改。在

所以,我的问题是:当你这样做的时候,你如何保持自己的条理?你是否会在修改后写下“待办事项”并在以后搜索它们,是否在编辑器中保持所有内容都处于打开状态,当你找到要查找的内容时,只需还原文件(当你正在搜索一个需要数天时间的大问题时,需要关闭计算机并在前几天返回时,这种方法是没有用的)?或者你什么都不做,因为在开发环境中打印语句没什么好担心的?在

我用的是维姆。我只想知道其他程序员如何处理这个问题。在


Tags: 文件zope内容源代码plone事项开源语句
3条回答

我以前经常遇到这个问题。现在,作为签入过程的一部分,我运行查找调试语句的find/grep脚本组合框。唯一需要注意的是,我必须保持添加的调试语句的一致性,这样grep才能找到它们。在

像这样:

## pre-checkin_scan.bin
find . -name "*.py" -exec grep -H --file=/homes/js/bin/pre-checkin_scan_regexp_list.grep {} \;



## pre-checkin_scan_regexp_list.grep
## (The first pattern is to ignore Doxygen comments)

^##[^@]
pdb
^ *print *( *" *Dbg
^ *print *( *" *Debug
^ *debug

好吧+1开始讨论。有时候我也会这样。我离开了那些pdb并将代码提交给了中央代码库git。我用“emacs”。因此,在提交代码之前,我通常在文件中搜索pdb。但每次检查都很忙文件。所以,在提交代码之前,我通常会非常仔细地检查diff。我也在寻找更好的方法来解决这个问题。在

对于我自己的项目,源代码总是在版本控制中。在提交之前,我总是检查图形化的差异,这样我就可以看到发生了什么变化,提交消息应该是什么,以及是否可以拆分成更小的提交。这样,我几乎总能识别出像打印语句这样的临时垃圾。如果没有,我通常很快就会注意到,如果我还没有推送的话,我可以取消提交(适用于git和bzr等dvc,而不是subversion)。在

对于需要花费数天时间的问题,这是一样的。在问题解决之前,我不会做出承诺,然后再看看差异。在

在这些情况下,允许在图形化diff视图中进行编辑的文本编辑器非常有用,但我主要使用的是Eclipse,它不支持这一点。在

相关问题 更多 >