最近,我正在学习一个名为Scylla的开源C ++项目,由Avi Kivity团队编写。 Scylla是一个与cassandra兼容的数据库。
在我阅读代码时,我可以通过一种方式来理解代码,就是在我感兴趣的地方添加print
语句。主要是它对我来说,了解代码的逻辑非常有用。但有时我觉得它也有点不方便和耗时,因为随着阅读范围的扩大,我可能需要添加许多prints
。如果我想维护它,我也可能需要经常在最新的上游分支上重新定位print-version-branch
。
我可以理解为什么原始代码确实有日志,并且没有直接向stdout发出print
语句。即使它有日志,它也不会记录到处。毕竟,对于代码的贡献者,他们知道自己设计的逻辑。但对我来说,代码的新手,我需要每个可能的打印输出来帮助理解代码,否则我应该如何知道内部,特别是当没有足够的代码文档时?
我知道gdb,但我不认为在阅读不调试的代码时它不是一个好工具。
除了添加print
语句外,还有更好的学习新代码的方法吗?
感谢
答案 0 :(得分:0)
所以除了添加打印之外,还有更好的学习新代码的方法 声明?
是的,请使用您最喜欢的编辑器Ctags。与直接阅读相比,这将加快浏览不熟悉的代码。
另一种选择是使用Eclipse CDT。除了快速代码浏览,它还允许构建调用层次结构。这有时允许在学习新代码时替换gdb。