did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780735622029

Debugging Microsoft . NET 2.0 Applications

by
  • ISBN13:

    9780735622029

  • ISBN10:

    0735622027

  • Edition: 3rd
  • Format: Paperback
  • Copyright: 2006-12-06
  • Publisher: Microsoft Pr
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $49.99

Summary

Traditionally, tools for performance tuning, testing applications, and debugging code have been expensive, hard to learn, and difficult to use. While previous versions of Microsoft Visual Studio- have included debuggers and other code-improvement tools, Visual Studio 2005 presents developers with robust and useful tools and processes to help ensure top-quality code. In this guide, an expert on improving code, John Robbins, steps back from the expert-level information that characterized his previous debugging books to present hands-on, practical advice for working developers on how to use the debugging, testing, and tuning features in Visual Studio 2005. In addition to an overview of the science of debugging and expertly-guided instruction, this guide also features solutions to common, real-world development problems. Developers of all skill levels will be able to use this book to help improve their understanding of debugging, debugging tools, tuning, and testing! , including how to effectively employ Test Explorer, the Enterprise Performance Tool, and WinDbg.

Table of Contents

Acknowledgments xv
Introduction xvii
Part I The Gestalt of Debugging
Bugs: Where They Come from and How You Solve Them
3(28)
Bugs and Debugging
3(15)
What Are Bugs?
4(4)
Process Bugs and Solutions
8(9)
Planning for Debugging
17(1)
Prerequisites to Debugging
18(3)
The Skill Set
18(2)
Learning the Skill Set
20(1)
The Debugging Process
21(9)
Step 1: Duplicate the Bug
22(1)
Step 2: Describe the Bug
23(1)
Step 3: Always Assume That the Bug Is Yours
24(1)
Step 4: Divide and Conquer
24(1)
Step 5: Think Creatively
25(1)
Step 6: Utilize Tools
26(1)
Step 7: Start Heavy Debugging
27(1)
Step 8: Verify That the Bug Is Fixed
27(2)
Step 9: Learn and Share
29(1)
Final Debugging Process Secret
29(1)
Summary
30(1)
Preparing for Debugging
31(58)
Track Changes Until You Throw Away the Project
31(7)
Version Control Systems
32(4)
Bug Tracking Systems
36(1)
Choosing the Right Systems for You
37(1)
Schedule Time for Building Debugging Systems
38(13)
Build All Builds with Debugging Symbols
38(3)
Treat Warnings as Errors
41(1)
Know Where Your Assemblies Load
42(5)
Always Build with Code Analysis Turned On
47(4)
Frequent Builds and Smoke Tests Are Mandatory
51(10)
Frequent Builds
52(8)
Smoke Tests
60(1)
Build the Installation Program Immediately
61(1)
QA Must Test with Debug Builds
62(1)
Set Up a Symbol Store
62(11)
Set Up a Source Server
73(15)
The Zen of Source Server
74(2)
Basic Indexing
76(6)
Debugging with Source Servers
82(4)
Better and Easier Source Server Indexing
86(2)
Summary
88(1)
Debugging During Coding
89(62)
Assert, Assert, Assert, and Assert
90(42)
How and What to Assert
92(6)
Assertions in .NET
98(10)
Superassert.Net
108(24)
Trace, Trace, Trace, and Trace
132(14)
Basic Tracing
133(6)
Advanced Tracing
139(7)
Comment, Comment, Comment, and Comment
146(3)
Summary
149(2)
Common .NET Debugging Questions
151(48)
Process- and Infrastructure-Related Questions
151(14)
Why must you always develop as a non-admin?
152(3)
What's the secret to debugging?
155(1)
What sort of development methodology should I use?
156(1)
Should we do code reviews?
157(1)
What do we do if we're having trouble reproducing builds sent to others outside the team?
158(1)
What additional C# compiler options will help me with my proactive debugging of managed code?
158(1)
What CPU should I set my build to?
159(1)
When should I freeze upgrades to the compiler and other tools?
160(1)
Is there anything I can do to speed up the Source Server when I first debug a program?
160(1)
How does Conditional Attribute work?
161(2)
Why do you always put the constants on the left side of conditional statements?
163(1)
What's the difference between a .NET debug and release binary?
163(2)
Visual Studio Bugs
165(1)
Visual Studio crashes when I load a specific project or when I press F5, won't debug at all, or won't hit any breakpoints. What's going on?
165(1)
Suddenly, a specific key doesn't work in the editor. I've tried uninstalling and reinstalling, but I still can't use the key. How can I get my key back?
165(1)
What happened to the Debug menu (or some other major Ul portion)?
165(1)
Designing for Debugging
166(4)
How should you implement exception handling?
166(1)
How can I log unhandled exceptions in my applications?
167(2)
When do I put a finalizer on my class?
169(1)
Debugger Questions
170(7)
I need a debugger on a production system. Do I have to purchase an additional copy of Visual Studio for that machine?
170(1)
What is that Vshost thing?
170(1)
Can you debug SQL stored procedures by using Visual Studio?
171(1)
How do you debug script by using Visual Studio?
172(1)
How can I debug with a different Code Access Security (CAS) level?
173(1)
Why do I sometimes get that annoying context switch deadlock exception when stopped in the debugger too long on Windows Forms applications? What are Managed Debugging Assistants?
173(4)
Debugging Scenario Questions
177(8)
How do I debug assembles in the Global Assembly Cache (GAC)?
177(1)
How can I debug the startup code for a Windows service written in .NET?
178(2)
My boss is sending me so much e-mail that I can't get anything done. Is there any way I can slow down the dreaded PHB e-mail?
180(1)
What strategies do you have for debugging deadlocks?
181(3)
How do you debug design-time assemblies? How do you debug add-ins?
184(1)
How do you debug assembly-loading issues?
184(1)
How can I always get the source and line information in any unhandled exception?
185(1)
What Tools Do You Use?
185(10)
Everything from SysInternals!
186(4)
Reflector by Lutz Roeder
190(2)
Sells Brothers' RegexDesigner.NET
192(1)
Windows Installer XML (WiX)
192(1)
Other Tools
193(2)
Summary
195(4)
Part II Power Debugging
Advanced Debugger Usage with Visual Studio
199(52)
Advanced Breakpoints and How to Use Them
200(19)
Breakpoint Tips
202(3)
Quickly Breaking on Any Function
205(5)
Location Breakpoint Modifiers
210(9)
The Watch Window
219(23)
Format Specifiers and Property Evaluation
221(2)
Make Object ID
223(1)
DataTips
224(1)
Expanding Your Own Types
225(10)
Debugger Visualizers
235(4)
Calling Methods in the Watch Window Family
239(3)
Advanced Tips and Tricks
242(7)
The Set Next Statement Command
242(1)
Mixed-Mode Debugging
243(3)
Debugging Exceptions
246(2)
Debugging Multiple Threads and Processes
248(1)
Summary
249(2)
WinDBG, SOS, and ADPlus
251(104)
Before You Begin
252(2)
Installation
252(2)
Additional Reading
254(1)
Basics
254(6)
Symbol Server Setup
255(1)
WinDBG Options and Windows
256(3)
Dealing with Debuggees
259(1)
The Command Window
260(31)
Getting Help
261(1)
Ensuring That Correct Symbols Are Loaded
261(4)
Processes and Threads
265(5)
Walking the Native Stack
270(3)
Exceptions and Events
273(4)
Commands for Controlling WinDBG
277(2)
Dump File Handling
279(3)
Extremely Useful Extension Commands
282(9)
SOS
291(49)
Loading SOS into WinDBG
292(2)
Loading SOS into Visual Studio
294(1)
Getting Help and Using Commands
294(2)
Program State and Managed Threads
296(4)
Managed Call Stacks
300(2)
Displaying Object Data
302(7)
Looking at the GC Heaps
309(17)
Exceptions and Breakpoints
326(5)
Deadlocks
331(6)
Other SOS Commands
337(3)
ADPlus
340(12)
Hang Mode
341(3)
Crash Mode
344(5)
Snapping at the Right Time
349(3)
Summary
352(3)
Part III Power Tools
Extending the Visual Studio IDE
355(30)
Extending with Macros
357(13)
Macro Parameters
358(1)
Debugging Macros
359(1)
Code Elements
360(1)
CommenTater: The Cure for the Common Potato?
361(7)
More Macros for You
368(2)
Visual Studio Add-Ins
370(14)
Tricks of Add-in Development
371(4)
Option Pages and the HiddenSettings Add-In
375(2)
Settings Master
377(7)
Summary
384(1)
Writing Code Analysis Rules
385(30)
Thinking About Rule Development
386(1)
Basics of Rule Development
387(8)
The All-Important Check Method
390(5)
Advanced Rule Development
395(18)
DoNotUseTraceAssertRule and CallAssertMethodsWithMessageParametersRule Rules
395(2)
DoNotLockOnPublicFields, DoNotLockOnThisOrMe, DoNotLockOnTypes, and DoNotUseMethodImplAttributeWithSynchronized Rules
397(5)
AvoidBoxingAndUnboxingInLoops Rule
402(5)
ExceptionDocumentationInvalidRule and ExceptionDocumentationMissingRule Rules
407(6)
Summary
413(2)
Index 415

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program