Full description not available
K**A
Four Stars
A good book on improving your debugging skills and how to proceed when you are stuck!
S**N
enjoyable
enjoyable
D**I
Sconsigliato
Inutile. Una cozzaglia di argomenti senza né capo né coda. Gli argomenti sono trattati in maniera superficiale e gli autori non entrano mai nello specifico.
K**R
Great debugging book.
I like the book because most of my computer courses taught very little about debugging and how to use a development environment like Microsoft Visual Studion. This book does an excellent job at explaining debugging which is essential to doing a good job at programming.
A**N
Review of Developer's Guide to Debugging
The reasons why you will need this book are clear: You write software (for desktop or embedded systems) and you will have to deal with bugs. Not only in your own code but also in the relation to other libraries and frameworks in modern design flows. It's a good idea to have systematic approach to debugging as a personal skill. And even more important'it's good to have such a strategy before you find yourself in a complex project. Debugging takes the major portion of time, it's usually performed in-between or after the implementation phase when deadlines are approaching and time is getting really a problem!The authors start with comprehensible bug scenarios (C/C++ sample source code is available for download), show usable tool environments based on industrial-strength tool suites, covering open source as well as commercial products for source code debugging, performance and memory analysis. And they give bridges to a useful test and check strategies (learning debugging not only to find bugs but also to prevent them). The authors introduce some of the the state-of-the-art debugging tools very practically with reference to the documentation (appendix A, debugger commands and appendix B, access to the tools). One could say that reading the manuals does the same job. No it doesn't, because the magic happens within the books view of tools, the discussion of mechanisms behind typical bug scenarios ("meet the bug family"), debugging strategies, and bug prevention. And to be honest, often we take the debuggers manuals when we're deeply involved in the debugging process. And that's far too late and lacks any strategy. The book gives a chance to acquire these skills before and in a structured way. The goals of each section in the book are clearly described at the beginning and summarized at the end in "lessons learned" boxes.But the authors not only discuss the pure question of 'running' or 'not running', i.e. 'bugs' or 'no bugs' on source code or linker level. Furthermore the book also covers memory problems, performance issues and the debugging of parallel programs. Both topics are crucial for modern software running on today's hardware platforms'for desktop and embedded systems. Finally, the book gives valuable hints to write debuggable code and to the usage of checks and tests. If you face the situation of time pressure, complex software structures, and nasty bugs, it is very valuable to have debugging strategies, fluid tool handling, and the infrastructure glue between always at your fingertips. I find that the "Developers Guide to Debugging" is a comprehensive introduction and a very good guide to professional debugging strategies.
D**K
You Write Code of Any Kind, You Have Bugs
I like this book so much that I've given copies of it to my close friends. The Developer's Guide to Debugging is a fantastic little book. This book focuses on the general topic of debugging C and C++ code; however, much of what is said can be useful for other programming languages (e.g. ObjectiveC or C#). Although others have written books on debugging, this book really got to the heart of the matter for me. The focus of the book is software development, but since modern digital design is really software design also, I feel this book should prove equally useful to those doing hardware design also. Of course my specialty, Electronic System-Level design using SystemC, fits perfectly.One of the things I like is that the book is not overly long, and each section has a nice summary of key concepts at the end. I also like that it covers topics for debugging code without debug information and provides strategies for trying to finding hard to repeat bugs. They also point out how debug tools can affect the bug, which brings up the "Heisen bug".Chapter 2, A Systematic Approach to Debugging is the most important chapter of the book. If you don't read anything else, read this chapter...twice. Viewing debug as a process is very important, and I think any engineer, whether hardware or software, will benefit from this insight. We apply rigorous processes to most everything we do in engineering until we get to this. I cannot recall the number of times I've seen engineers pull up a waveform or dive into GDB before they've really considered where the issues are. What usually follows are hours of wasted forays until they stumble on the problem. Follow the systematic approach shown in this book and you will get to the root of the problem much quicker. This chapter covers both strategy and provides a classification system for bugs.Subsequent chapters provide insights into specific areas and provide valuable tips and approaches to recognizing and solving problems in this area. After reading Chapter 2, you don't have to read the book sequentially, but can go directly to any area. I recommend reading chapter 11, which will help you to write code that is easier to debug. The table of contents is a great way to look at this book. In the following, I have added my own comments following a hypen (-) after the chapter titles. 1. You Write Software You Have Bugs - even Hello World has bugs 2. A Systematic Approach to Debugging - Golden Rules and a must read for all engineers 3. Getting to the Root - Source Code Debuggers 4. Fixing Memory Problems - finding memory leaks and bad pointer problems 5. Profiling Memory Use 6. Solving Performance Problems 7. Debugging Parallel Programs - a topic not often dealt with in other books 8. Finding Environment and Compiler Problems 9. Dealing with Linking Problems 10. Advanced Debugging 11. Writing Debuggable Code - this is invaluable and should be required reading 12. How Static Checking Can Help - finding bugs before you execute a line of code! 13. SummaryA. Debugger Commands - a short list of key GDB and Visual Studio commandsB. Access to tools - an excellent list of tools you might not be familiar withBecause debugging is an ageless topic and because this book looks beyond specific tools, I feel this book will continue to be useful for many years to come.In summary, I highly recommend this book for software developers, verification engineers and system-level designers using SystemC (or any standard programming language). RTL designers might not benefit quite as much, but chapter 2 is worth the read.
Trustpilot
1 day ago
2 months ago