Saturday, December 5, 2009

Debugging Windows Programs or Universal Meta Data Models

Debugging Windows Programs: Strategies, Tools, and Techniques for Visual C++ Programmers

Author: Everett N McKay

For professional software developers, debugging is a way of life. This book is the definitive guide to Windows debugging, providing developers with the strategies and techniques they need to fulfill one of their most important responsibilities efficiently and effectively.

Debugging Windows Programs shows readers how to prevent bugs by taking full advantage of the Visual C++ development tools and writing code in a way that makes certain types of bugs impossible. They also will learn how to reveal bugs with debugging statements that force bugs to expose themselves when the program is executed, and how to make the most of debugging tools and features available in Windows, Visual C++, MFC, and ATL. The authors provide specific solutions to the most common debugging problems, including memory corruption, resource leaks, stack problems, release build problems, finding crash locations, and multithreading problems.

These essential topics are covered:

  • The debugging process
  • Writing C++ code for debugging
  • Strategically using assertions, trace statements, and exceptions
  • Windows postmortem debugging using Dr. Watson and MAP files
  • Using the Visual C++ debugger
  • Debugging memory
  • Debugging multithreaded programs
  • Debugging COM

Each chapter provides developers with exactly what they need to master the subject and improve development productivity and software quality.

Comprehensive, current, and practical, Debugging Windows Programs helps developers understand the debugging process and make the most of the Visual C++ debugging tools.


020170238XB04062001

Booknews

Shows how to prevent bugs by taking advantage of the Visual C++ development tools and writing code in a way that makes certain types of bugs impossible. The authors recommend the use of debugging statements that force bugs to expose themselves when the program is executed, and provide specific solutions to the most common debugging problems, including memory corruption, resource leaks, stack problems, release build problems, and finding crash locations. Annotation c. Book News, Inc., Portland, OR (booknews.com)



Table of Contents:
(Each Chapter concludes with "Recommended Reading")
Answers to Frequently Asked Questions.
Preface.
Introduction.

I. DEBUGGING STRATEGIES.
1. The Debugging Process.
The Five (Wrong) Stages of Debugging.
The Five Stages of Debugging.
Determining That a Bug Exists.
Gathering Bug Information.
Analyzing the Bug Information.
Removing the Bug.
Verifying the Change.
Debug Smarter, Not Harder.
2. Writing C++ Code for Debugging.
Design.
C++ Programming Style.
The C++ Language.
The Visual C++ Compiler.
3. Using Assertions.
The Limitations of Assertions.
Types of Assertions.
More MFC Assertion Macros.
Custom Assertions.
Portable Assertions.
Assertion Strategy.
Invariants.
Assertion Patterns.
Document Your Assertions.
Implementing AssertValid.
Defensive Programming.
Error Handling.
Miscellaneous Tips.
4. Using Trace Statements.
Types of Trace Statements.
Custom Trace Statements.
Trace Statement Strategies.
Miscellaneous Tips.
5. Using Exceptions and Return Values.
Incorrect Error Handling Results in Bugs.
The Need for a Strategy.
Using Exceptions.
Using Return Values.
Exceptions and Bugs.
C++ Exceptions versus Windows Structured Exception Handling.
Translating Structured Exceptions to C++ Exceptions.
Exception Performance.
Exception Strategy.
Defensive Programming with Exceptions.
DebuggingExceptions.
Miscellaneous Tips.

II. DEBUGGING TOOLS.
6. Debugging with Windows.
Postmortem Debugging.
Windows API Error Codes.
Windows Exception Basics.
Portable Executable Basics.
Rebasing DLLs.
Assembly Language Basics.
Debugging with MAP Files.
Debugging with PDB Files.
Debugging Using a Windows 98 Crash Dialog Box.
Debugging Using Dr. Watson.
Miscellaneous Tips.
7. Debugging with the Visual C++ Debugger.
Compiler and Linker Options.
Debug versus Release Builds.
Debugging Release Builds.
The Test Build.
Debugging Symbols.
The Debug Windows.
Watch Expressions.
Datatip Expressions.
Registers and Pseudo-registers.
Watch Window Formatting Symbols.
Using Autoexp.dat.
Debugging with Breakpoints.
Just-in-time Debugging.
Remote Debugging.
Debugging with Edit and Continue.

III. DEBUGGING TECHNIQUES.
8. Basic Debugging Techniques.
General Debugging Techniques.
Visual C++ Debugger Techniques.
Windows Debugging Techniques.
MFC Debugging Techniques.
9. Debugging Memory.
Why Memory Leaks Aren't Acceptable.
Types of Memory Debugging.
Using the Debug Heap.
How the Debug Heap Works.
Reading Windows Memory Addresses.
Debugging Memory Corruption.
Debugging Memory Leaks.
Debugging Windows Resource Leaks.
Debugging Windows Thread Stacks.
Miscellaneous Tips.
10. Debugging Multithreaded Programs.
What Is Multithreading?
Issues in Multithreaded Programs.
Writing Thread-safe Code.
Thread Creation and Termination.
Understanding the Debugger.
Debugging Techniques.
11. COM Debugging.
Chapter Basics.
Defensive COM Programming Practices.
Debugging Base COM DLLs.
Debugging Base COM EXEs.
Debugging Configured Components.
Debugging Base COM DLLs That Are Called From ASPs.
12. Desperate Measures.
Checking the Easy Stuff.
Using Your Head.
Rechecking Your Assumptions.
Checking the Obvious.
Checking the Code.
Checking the System.
Double-Checking the Documentation.
Using Other People.
Using Newsgroups.
Stop Living Dangerously.
Bibliography.
Index. 020170238XT04062001

Book review: Information Visualization or Digital Photography 101

Universal Meta Data Models

Author: David Marco



• The heart of the book provides the complete set of models that will support most of an organization's core business functions, including universal meta models for enterprise-wide systems, business meta data and data stewardship, portfolio management, business rules, and XML, messaging, and transactions

• Developers can directly adapt these models to their own businesses, saving countless hours of development time

• Building effective meta data repositories is complicated and time-consuming, and few IT departments have the necessary expertise to do it right-which is why this book is sure to find a ready audience

• Begins with a quick overview of the Meta Data Repository Environment and the business uses of meta data, then goes on to describe the technical architecture followed by the detailed models




2 comments: