调试的艺术 开放书籍
这本不断演进的书籍将教你如何:
- 极快地调试常规问题
- 使复杂问题变得可调试
脚注:改编自 Perl 的口号:“简单的事情应该容易,困难的事情应该可能”。
这是一份关于成功调试简单和复杂软件问题的方法论和复制粘贴配方的进行中合集。有些章节相当完整,有些将在后期完成,还有些尚未开始。
除了调试方法论,本书的第二个重点是分享我发现的最佳工具,以成功完成调试工作,同时理想情况下在过程中“损失最少的头发”。
引言
自 1995 年以来我一直在开发软件,其中大量工作涉及调试。多年来,我开发了各种高效的方法论来发现问题的根源,这是解决问题之前最困难的阶段。因为一旦问题被理解,其解决方案通常触手可及。
时不时地,当我在调试某个困难问题时,有人建议我与世界分享我的方法。我一直说这太难泛化了,但最近种下的种子似乎已经发芽,因此在接下来的章节中,我将尝试分享一些见解,以减轻这一有时非常困难的过程。
撰写关于在虚空中调试的文章非常困难,而且由于我尚未保存使用案例,构建这些内容需要一些时间,因此请预期这些页面在很长一段时间内都将处于进行中(WIP)状态。但希望一些想法能尽早传达给你,它们将有助于减轻你在专业项目和娱乐项目中调试的负担。
目录
-
用于调试的 Unix 工具 -
bash,strace,make, prompt,nohup, 等。 -
调试编译后的程序 -
gdb,ldd,nm,LD_LIBRARY_PATH,LD_PRELOAD, 等。 -
调试 Python 程序 -
py-spy, paths, auto-print, 等。 -
调试 PyTorch 程序 - cpu and gpu memory, performance, models, tensors, 等。
-
调试机器学习项目 (external)
更新
我会在我的 twitter 频道 https://twitter.com/StasBekman 上宣布任何重大更新。
本书的电子书版本
你可以下载本书的各种电子书格式:
我会尝试每隔几周重建一次这些文件,但如果你想要最新的电子书版本,构建说明在 这里。
用于 AI 代理的 SKILL.md
我维护了一个 SKILL.md 文件,你可以用它来教你的 AI 代理更好地调试你的项目。
另请参阅配套技能:Machine Learning Engineering 和 Stas' Python Cookbook。
相关开放书籍
- 机器学习工程开放书籍 — 训练和运行大规模 ML 模型。
- Stas 的 Python 食谱集 — 日常 Python 和标准库食谱。
贡献
如果您发现了一个 bug、拼写错误,或者想要提出改进建议,请随时打开一个 Issue 或提交一个 PR。
许可证
本网站的内容根据 Attribution-ShareAlike 4.0 International 分发。
我的仓库地图
✔ 书籍: 机器学习工程 | 调试的艺术 | Stas 的 Python 食谱集
✔ 应用程序: ipyexperiments
✔ 工具和速查表: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix