TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Good books on debugging?

67 点作者 antonpirker大约 10 年前
Are there any good books on debugging? I think debugging is one of the key skills of a good developer, but I have never seen a book (or blog) especially about debugging code and distributed systems.

20 条评论

wyclif大约 10 年前
Working Effectively With Legacy Code by Michael Feathers <a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Working-Effectively-Legacy-Michael-Fea...</a><p>Debugging with GDB: The GNU Source-Level Debugger by Stallman, Pesch, and Shebs <a href="http://www.amazon.com/Debugging-GDB-GNU-Source-Level-Debugger/dp/1882114884/" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Debugging-GDB-GNU-Source-Level-Debugge...</a><p>The Art of Debugging with GDB, DDD, and Eclipse by Matloff &amp; Salzman <a href="http://www.amazon.com/gp/product/1593271743" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;gp&#x2F;product&#x2F;1593271743</a>
arihant大约 10 年前
While there are great options mentioned here, I would actually be suggesting that you stick to a very good systems book. A standing knowledge of lower level systems and instruction code will give great depth to your debugging skills. Nothing teaches reverse engineering better than experience.<p>At CMU, we used CS:APP (Computer Systems: A Programmer&#x27;s Perspective). It&#x27;s written by Randy Bryant, the same professor who used to teach it. I still have that book, it&#x27;s updated for Ivy Bridge, and I truly believe that this book changed my approach towards debugging more than any other text. It will push you to the next curve.<p>Towards the end of the book you&#x27;d find some programming labs. I highly suggest you do them religiously. Many great men have failed at them.
评论 #9244411 未加载
blatherard大约 10 年前
I&#x27;ve read a number of books on debugging, it&#x27;s something of an interest of mine. The best general-purpose debugging book I&#x27;ve read is the cumbersomely named<p>Debugging: The 9 Indispensible Rules for Finding Even the Most Elusive Software and Hardware Problems by David J. Agans<p>Amazon link: <a href="http://www.amazon.com/Debugging-Indispensable-Software-Hardware-Problems/dp/0814474578/" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Debugging-Indispensable-Software-Hardw...</a><p>What I really like about it is that it gives a number of high-level approaches to solving debugging problems and is written very accessibly.
danparsonson大约 10 年前
Tess Ferrandez&#x27;s blog is worth a look if you&#x27;re doing .NET debugging (particularly outside of the IDE - she&#x27;s a windbg wizard):<p><a href="http://blogs.msdn.com/b/tess/archive/tags/debugging/" rel="nofollow">http:&#x2F;&#x2F;blogs.msdn.com&#x2F;b&#x2F;tess&#x2F;archive&#x2F;tags&#x2F;debugging&#x2F;</a><p>She has written some labs covering common debugging scenarios:<p><a href="http://blogs.msdn.com/b/tess/archive/2008/02/04/net-debugging-demos-information-and-setup-instructions.aspx" rel="nofollow">http:&#x2F;&#x2F;blogs.msdn.com&#x2F;b&#x2F;tess&#x2F;archive&#x2F;2008&#x2F;02&#x2F;04&#x2F;net-debuggin...</a>
joefreeman大约 10 年前
I haven&#x27;t read it, but a really smart ex-colleague is the author of &#x27;Debug It&#x27;: <a href="https://pragprog.com/book/pbdp/debug-it" rel="nofollow">https:&#x2F;&#x2F;pragprog.com&#x2F;book&#x2F;pbdp&#x2F;debug-it</a>
评论 #9243005 未加载
iosengineer大约 10 年前
Any Sherlock Holmes adventure book. Technique is good. Attitude is better.
adolgert大约 10 年前
&quot;Debugging Applications&quot; by John Robbins is an old MS Press book, now 43 cents on Amazon, that covers everything from high level code structure to a nice primer on reading x86 assembly. I have more recent books, but this is the one that taught me to gird my coding loins for a fight.
serve_yay大约 10 年前
&quot;Find the Bug: a Book of Incorrect Programs&quot; by Adam Barr: <a href="http://www.amazon.com/gp/aw/d/0321223918/ref=mp_s_a_1_1?qid=1426946354&amp;sr=8-1&amp;keywords=find+the+bug&amp;pi=AC_SY200_QL40&amp;dpPl=1&amp;dpID=51n%2B4Yc628L&amp;ref=plSrch" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;gp&#x2F;aw&#x2F;d&#x2F;0321223918&#x2F;ref=mp_s_a_1_1?qid=...</a><p>It has a bunch of examples of bugs, classified by type of bug, and gives you tools for diagnosing and fixing them.
panamafrank大约 10 年前
Giving tips very much depends on the language you&#x27;re using and the capabilities of your debugger, having worked on large legacy VC++ projects knowing the &quot;bad smells&quot; and common mistakes to spot is helpful, but you&#x27;ll struggle to debug projects you don&#x27;t have a solid knowledge of.<p>To improve, try learning cracking; <a href="https://microcorruption.com/" rel="nofollow">https:&#x2F;&#x2F;microcorruption.com&#x2F;</a> is a CTF game based around gaining access to embedded devices, it&#x27;s rather fun too. I think what the most common mistake I find is two programmers having different assumptions on how some subsystem should work, so try improving your working memory as being able to remember the seemingly ok code 10 frames ago that conflicts with what&#x27;s in front of you could be the key.<p>try:<p>Working Effectively with Legacy Code Martin, R.<p>API Design for C++ Reddy, M.<p>Were both full of indispensable advice.
aerohit大约 10 年前
There is a course on udacity called software debugging <a href="https://www.udacity.com/course/cs259" rel="nofollow">https:&#x2F;&#x2F;www.udacity.com&#x2F;course&#x2F;cs259</a>
troydj大约 10 年前
Andreas Zeller, original author of GNU DDD, has a good book called &quot;Why Programs Fail: A Guide to Systematic Debugging&quot;, 2nd edition.<p><a href="http://www.amazon.com/Why-Programs-Fail-Systematic-Debugging-ebook/dp/B0092L8LCW" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Why-Programs-Fail-Systematic-Debugging...</a>
ilaksh大约 10 年前
You need to understand how your system works and then get a good tool that allows you to observe its behavior in as much detail as possible.<p>I don&#x27;t believe books are likely to be particularly relevant with the diversity of tools and platforms. Google the platform name plus &#x27;debugging tool&#x27;. Then practice debugging.<p>If you have to, step through every single line of code and observe the program state closely at each step.<p>What kind of distributed system is it exactly? If it is a highly distributed system you can mock parts of it or find&#x2F; build a tool for fine-grain inspection and integrated reporting of the state of the system.<p>A book is not going to be able to keep up with platform and tool development.<p>You want to learn to Google, find good tools, practice a lot.
Balija大约 10 年前
Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code by Bill Blunden
tkfx大约 10 年前
The Takipi blog deals a lot with debugging related issues: <a href="http://blog.takipi.com/" rel="nofollow">http:&#x2F;&#x2F;blog.takipi.com&#x2F;</a><p>Some more posts worth checking out in the JVM domain:<p><a href="http://highscalability.com/blog/2015/1/7/the-ultimate-guide-5-methods-for-debugging-production-server.html" rel="nofollow">http:&#x2F;&#x2F;highscalability.com&#x2F;blog&#x2F;2015&#x2F;1&#x2F;7&#x2F;the-ultimate-guide-...</a><p><a href="http://www.infoq.com/articles/Advanced-Java-Debugging-Techniques" rel="nofollow">http:&#x2F;&#x2F;www.infoq.com&#x2F;articles&#x2F;Advanced-Java-Debugging-Techni...</a><p>(Disclaimer: I&#x27;m from Takipi)
antonpirker大约 10 年前
Somewhere on the internet the book &quot;The Medical Detective&quot; by Bertone Roueche should be a really good read about debugging. But I did not find a place on the internet where you can buy it. Here is a link to goodreads: <a href="http://www.goodreads.com/book/show/106164.The_Medical_Detectives" rel="nofollow">http:&#x2F;&#x2F;www.goodreads.com&#x2F;book&#x2F;show&#x2F;106164.The_Medical_Detect...</a><p>Has anyone read this book and can recommend it?
评论 #9242695 未加载
FaisalRashid大约 10 年前
Check this one: <a href="https://books.google.com/books?isbn=0549783229" rel="nofollow">https:&#x2F;&#x2F;books.google.com&#x2F;books?isbn=0549783229</a>
dlss大约 10 年前
Surprised this wasn&#x27;t already mentioned, but the best description I&#x27;ve ever read of debugging is in Zen and The Art of Motorcycle Maintenance. (Unsurprisingly, it&#x27;s about debugging motorcycles, but the author was a programmer so it&#x27;s directly transferable)
vdm大约 10 年前
The Scientific Method of Troubleshooting (Blithe Rocher @ GoGaRuCo 2014) <a href="https://www.youtube.com/watch?v=h9YZXuUjyOs" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=h9YZXuUjyOs</a>
p0nce大约 10 年前
Work on legacy systems.
MichaelCrawford大约 10 年前
Robert Ward, &quot;Debugging C&quot;. There is a second edition with a somewhat different title that I have not read, but expect would be good.<p>He emphasizes the use of the scientific method - observe your program&#x27;s behavior, form a hypothesis as to what the bug could be, design an experiment to test your hypothesis. Just learning to be methodical rather than thrashing around mindlessly helped me tremendously.<p>It&#x27;s out of print but I expect you could find it on Alibris.