Advanced .NET Debugging: Addison-Wesley Microsoft Technology
Autor Mario Hewardt Patrick Dussuden Limba Engleză Paperback – 31 oct 2009
Advanced .NET Debugging is the first focused, pragmatic guide to tracking down today's most complex and challenging .NET application bugs.
Authored by Mario Hewardt, coauthor of the widely praised Advanced Windows Debugging, this is the only book to focus entirely on .NET's powerful native debugging tools, including WinDBG, NTSD and CDB. Using these tools, Hewardt shows how to identify the real root causes of problems--far more quickly than you ever could with visual debuggers.
Hewardt first introduces the key concepts experienced .NET developers, testers, and support professionals need to successfully use .NET's native debuggers. Next, he turns to sophisticated debugging techniques, using real-world examples that demonstrate many common C# programming errors. In particular, he presents the most thorough and useful guide to .NET memory debugging ever published.
Advanced .NET Debugging also offers detailed, practical coverage of postmortem debugging; the use of PowerDBG and other "power tools"; and, finally, the debugging implications of the new .NET CLR 4.0.
This book enables you to
- Master and successfully use Debugger Tools for Windows, SOS, SOSEX, CLR Profiler, and other powerful tools
- Go beyond code reviews and tracing to identify root causes more quickly and accurately
- Debug live machines with zero footprint and no configuration changes
- Streamline and accelerate QA testing
- Support production customers using static snapshots, not live processes
- Perform key tasks such as examining thread-specific data, the garbage collector heap, and .NET exceptions
- Troubleshoot complex .NET assembly dependencies
- Solve difficult synchronization problems, including deadlocks and thread pool problems
- Track down problems with Platform Invocation and COM Interoperability
- Generate and successfully analyze crash dumps
- Gain a deeper, more practical understanding of the .NET runtime and its components
Preț: 331.44 lei
Preț vechi: 414.31 lei
-20% Nou
Puncte Express: 497
Preț estimativ în valută:
63.43€ • 65.89$ • 52.69£
63.43€ • 65.89$ • 52.69£
Carte indisponibilă temporar
Doresc să fiu notificat când acest titlu va fi disponibil:
Se trimite...
Preluare comenzi: 021 569.72.76
Specificații
ISBN-13: 9780321578891
ISBN-10: 0321578899
Pagini: 503
Dimensiuni: 180 x 236 x 28 mm
Greutate: 0.84 kg
Ediția:1
Editura: Addison-Wesley Professional
Seria Addison-Wesley Microsoft Technology
Locul publicării:Boston, United States
ISBN-10: 0321578899
Pagini: 503
Dimensiuni: 180 x 236 x 28 mm
Greutate: 0.84 kg
Ediția:1
Editura: Addison-Wesley Professional
Seria Addison-Wesley Microsoft Technology
Locul publicării:Boston, United States
Descriere
“Mario Hewardt’s Advanced .NET Debugging is an excellent resource for both beginner and experienced developers working with .NET. The book is also packed with many debugging tips and discussions of CLR internals, which will benefit developers architecting software.”
–Jeffrey Richter, consultant, trainer, and author at Wintellect
“Mario has done it again. His Advanced Windows Debugging (coauthored with Daniel Pravat) is an invaluable resource for native code debugging, and Advanced .NET Debugging achieves the same quality, clarity, and breadth to make it just as invaluable for .NET debugging.”
–Mark Russinovich, Technical Fellow, Microsoft Corporation
The Only Complete, Practical Guide to Fixing the Toughest .NET Bugs
Advanced .NET Debugging is the first focused, pragmatic guide to tracking down today’s most complex and challenging .NET application bugs. It is the only book to focus entirely on using powerful native debugging tools, including WinDBG, NTSD, and CDB, to debug .NET applications. Using these tools, author Mario Hewardt explains how to identify the real root causes of problems—far more quickly than you ever could with other debuggers.
Hewardt first introduces the key concepts needed to successfully use .NET’s native debuggers. Next, he turns to sophisticated debugging techniques, using real-world examples that demonstrate many common C# programming errors.
This book enables you to
–Jeffrey Richter, consultant, trainer, and author at Wintellect
“Mario has done it again. His Advanced Windows Debugging (coauthored with Daniel Pravat) is an invaluable resource for native code debugging, and Advanced .NET Debugging achieves the same quality, clarity, and breadth to make it just as invaluable for .NET debugging.”
–Mark Russinovich, Technical Fellow, Microsoft Corporation
The Only Complete, Practical Guide to Fixing the Toughest .NET Bugs
Advanced .NET Debugging is the first focused, pragmatic guide to tracking down today’s most complex and challenging .NET application bugs. It is the only book to focus entirely on using powerful native debugging tools, including WinDBG, NTSD, and CDB, to debug .NET applications. Using these tools, author Mario Hewardt explains how to identify the real root causes of problems—far more quickly than you ever could with other debuggers.
Hewardt first introduces the key concepts needed to successfully use .NET’s native debuggers. Next, he turns to sophisticated debugging techniques, using real-world examples that demonstrate many common C# programming errors.
This book enables you to
- Make practical use of postmortem debugging, including PowerDBG and other “power tools”
- Understand the debugging details and implications of the new .NET CLR 4.0
- Master and successfully use Debugging Tools for Windows, as well as SOS, SOSEX, CLR Profiler, and other powerful tools
- Gain a deeper, more practical understanding of CLR internals, such as examining thread-specific data, managed heap and garbage collector, interoperability layer, and .NET exceptions
- Solve difficult synchronization problems, managed heap problems, interoperability problems, and much more
- Generate and successfully analyze crash dumps
Cuprins
Foreword xix
Preface xxi
Acknowledgments xxxi
About the Author xxxiii
Part I: Overview 1
Chapter 1: Introduction to the Tools 3
Debugging Tools for Windows 3
.NET 2.0–Redistributable 4
.NET 2.0–SDK 5
SOS 8
SOSEX 10
CLR Profiler 11
Performance Counters 14
Reflector for .NET 15
PowerDbg 16
Managed Debugging Assistants 18
Summary 21
Chapter 2: CLR Fundamentals 23
High-Level Overview 23
CLR and the Windows Loader 26
Application Domains 33
Assembly Overview 38
Assembly Manifest 39
Type Metadata 42
Summary 68
Chapter 3: Basic Debugging Tasks 69
The Debugger and the Debugger Target 69
Symbols 74
Controlling Execution 77
Loading Managed Code Extensions 85
Controlling CLR Debugging 90
Setting Breakpoints 90
Object Inspection 103
Thread Operations 131
Code Inspection 143
CLR Internals Commands 146
Diagnostics Commands 149
SOSEX Extension Commands 151
Crash Dump Files 163
Summary 165
Part II: Applied Debugging 167
Chapter 4: Assembly Loader 169
CLR Loader Overview 169
Simple Assembly Load Failure 179
Load Context Failure 185
Interoperability and DllNotFoundException 195
Debugging Light Weight Code Generation 197
Summary 202
Chapter 5: Managed Heap and Garbage Collection 203
Windows Memory Architecture Overview 204
Garbage Collector Internals 213
Debugging Managed Heap Corruptions 254
Debugging Managed Heap Fragmentation 262
Debugging Out of Memory Exceptions 272
Summary 291
Chapter 6: Synchronization 293
Synchronization Basics 293
Thread Synchronization Primitives 294
Synchronization Internals 306
Synchronization Scenarios 316
Summary 344
Chapter 7: Interoperability 345
Platform Invocation 345
COM Interoperability 352
Debugging P/Invoke Calls 358
Debugging Interop Leaks 373
Debugging COM Interop Finalization 378
Summary 388
Part III: Advanced Topics 389
Chapter 8: Postmortem Debugging 391
Dump File Fundamentals 392
Windows Error Reporting 409
Summary 438
Chapter 9: Power Tools 439
PowerDbg 439
Visual Studio 448
CLR Profiler 460
WinDbg and the CmdTree Command 467
Summary 469
Chapter 10: CLR 4.0 471
Tools 471
Managed Heap and Garbage Collection 472
Synchronization 480
Interoperability 483
Postmortem Debugging 484
Summary 485
Index 487
Preface xxi
Acknowledgments xxxi
About the Author xxxiii
Part I: Overview 1
Chapter 1: Introduction to the Tools 3
Debugging Tools for Windows 3
.NET 2.0–Redistributable 4
.NET 2.0–SDK 5
SOS 8
SOSEX 10
CLR Profiler 11
Performance Counters 14
Reflector for .NET 15
PowerDbg 16
Managed Debugging Assistants 18
Summary 21
Chapter 2: CLR Fundamentals 23
High-Level Overview 23
CLR and the Windows Loader 26
Application Domains 33
Assembly Overview 38
Assembly Manifest 39
Type Metadata 42
Summary 68
Chapter 3: Basic Debugging Tasks 69
The Debugger and the Debugger Target 69
Symbols 74
Controlling Execution 77
Loading Managed Code Extensions 85
Controlling CLR Debugging 90
Setting Breakpoints 90
Object Inspection 103
Thread Operations 131
Code Inspection 143
CLR Internals Commands 146
Diagnostics Commands 149
SOSEX Extension Commands 151
Crash Dump Files 163
Summary 165
Part II: Applied Debugging 167
Chapter 4: Assembly Loader 169
CLR Loader Overview 169
Simple Assembly Load Failure 179
Load Context Failure 185
Interoperability and DllNotFoundException 195
Debugging Light Weight Code Generation 197
Summary 202
Chapter 5: Managed Heap and Garbage Collection 203
Windows Memory Architecture Overview 204
Garbage Collector Internals 213
Debugging Managed Heap Corruptions 254
Debugging Managed Heap Fragmentation 262
Debugging Out of Memory Exceptions 272
Summary 291
Chapter 6: Synchronization 293
Synchronization Basics 293
Thread Synchronization Primitives 294
Synchronization Internals 306
Synchronization Scenarios 316
Summary 344
Chapter 7: Interoperability 345
Platform Invocation 345
COM Interoperability 352
Debugging P/Invoke Calls 358
Debugging Interop Leaks 373
Debugging COM Interop Finalization 378
Summary 388
Part III: Advanced Topics 389
Chapter 8: Postmortem Debugging 391
Dump File Fundamentals 392
Windows Error Reporting 409
Summary 438
Chapter 9: Power Tools 439
PowerDbg 439
Visual Studio 448
CLR Profiler 460
WinDbg and the CmdTree Command 467
Summary 469
Chapter 10: CLR 4.0 471
Tools 471
Managed Heap and Garbage Collection 472
Synchronization 480
Interoperability 483
Postmortem Debugging 484
Summary 485
Index 487
Recenzii
Praise for Advanced .NET Debugging
“While the .NET environment provides a developer with a powerful toolbox to accomplish their goals, it can often be a daunting task to debug some of the issues that inevitably crop up during software development. This book provides the crucial details about how the CLR works internally, which you need to know to diagnose many classes of bugs in your .NET programs, and it provides clear examples of how to solve the same types of issues we see our customers struggle with on a daily basis. This book is required reading for all serious .NET developers.”
—Lee Culver, CLR Quick Response Team, Microsoft Corporation
“Have you ever wondered why your .NET application is not responding? Or why it’s intermittently consuming high CPU? Or crashing? When things go wrong you need to think low level, using the proper knowledge and tools to investigate the internals of your application. Advanced .NET Debugging delivers the knowledge necessary to quickly isolate nasty software problems. Welcome to the debugging world!”
—Roberto A. Farah, Senior Premier Field Engineer, Microsoft Corporation
“Mario Hewardt’s Advanced .NET Debugging is an excellent resource for both beginner and experienced developers working with .NET. The book is also packed with many debugging tips and discussions of CLR internals that will benefit developers architecting software. I highly recommend Mario’s book.”
—Jeffrey Richter, consultant, trainer, and author at Wintellect
“This book talks about tools such as SOS in the kind of depth that I have not seen elsewhere. It’s a definite aid in understanding and debugging managed application behavior.”
—Maoni Stephens, GC Developer, Microsoft Corporation
“Advanced .NET Debugging is essential reading for someone who wants to get under the covers and obtain an intimate understanding of how the .NET Common Language Runtime works. It clearly identifies the layout of the system and how the assemblies are loaded and organized. I recommend it to anyone who wants to debug more complex issues brought on by synchronization problems and corruption. It also effectively addresses the difficult task of postmortem debugging.”
—Pat Styles, Microsoft Corporation
Praise for Advanced .NET Debugging "While the .NET environment provides a developer with a powerful toolbox to accomplish their goals, it can often be a daunting task to debug some of the issues that inevitably crop up during software development. This book provides the crucial details about how the CLR works internally, which you need to know to diagnose many classes of bugs in your .NET programs, and it provides clear examples of how to solve the same types of issues we see our customers struggle with on a daily basis. This book is required reading for all serious .NET developers." -Lee Culver, CLR Quick Response Team, Microsoft Corporation "Have you ever wondered why your .NET application is not responding? Or why it's intermittently consuming high CPU? Or crashing? When things go wrong you need to think low level, using the proper knowledge and tools to investigate the internals of your application. Advanced .NET Debugging delivers the knowledge necessary to quickly isolate nasty software problems. Welcome to the debugging world!" -Roberto A. Farah, Senior Premier Field Engineer, Microsoft Corporation "Mario Hewardt's Advanced .NET Debugging is an excellent resource for both beginner and experienced developers working with .NET. The book is also packed with many debugging tips and discussions of CLR internals that will benefit developers architecting software. I highly recommend Mario's book." -Jeffrey Richter, consultant, trainer, and author at Wintellect "This book talks about tools such as SOS in the kind of depth that I have not seen elsewhere. It's a definite aid in understanding and debugging managed application behavior." -Maoni Stephens, GC Developer, Microsoft Corporation "Advanced .NET Debugging is essential reading for someone who wants to get under the covers and obtain an intimate understanding of how the .NET Common Language Runtime works. It clearly identifies the layout of the system and how the assemblies are loaded and organized. I recommend it to anyone who wants to debug more complex issues brought on by synchronization problems and corruption. It also effectively addresses the difficult task of postmortem debugging." -Pat Styles, Microsoft Corporation
“While the .NET environment provides a developer with a powerful toolbox to accomplish their goals, it can often be a daunting task to debug some of the issues that inevitably crop up during software development. This book provides the crucial details about how the CLR works internally, which you need to know to diagnose many classes of bugs in your .NET programs, and it provides clear examples of how to solve the same types of issues we see our customers struggle with on a daily basis. This book is required reading for all serious .NET developers.”
—Lee Culver, CLR Quick Response Team, Microsoft Corporation
“Have you ever wondered why your .NET application is not responding? Or why it’s intermittently consuming high CPU? Or crashing? When things go wrong you need to think low level, using the proper knowledge and tools to investigate the internals of your application. Advanced .NET Debugging delivers the knowledge necessary to quickly isolate nasty software problems. Welcome to the debugging world!”
—Roberto A. Farah, Senior Premier Field Engineer, Microsoft Corporation
“Mario Hewardt’s Advanced .NET Debugging is an excellent resource for both beginner and experienced developers working with .NET. The book is also packed with many debugging tips and discussions of CLR internals that will benefit developers architecting software. I highly recommend Mario’s book.”
—Jeffrey Richter, consultant, trainer, and author at Wintellect
“This book talks about tools such as SOS in the kind of depth that I have not seen elsewhere. It’s a definite aid in understanding and debugging managed application behavior.”
—Maoni Stephens, GC Developer, Microsoft Corporation
“Advanced .NET Debugging is essential reading for someone who wants to get under the covers and obtain an intimate understanding of how the .NET Common Language Runtime works. It clearly identifies the layout of the system and how the assemblies are loaded and organized. I recommend it to anyone who wants to debug more complex issues brought on by synchronization problems and corruption. It also effectively addresses the difficult task of postmortem debugging.”
—Pat Styles, Microsoft Corporation
Praise for Advanced .NET Debugging "While the .NET environment provides a developer with a powerful toolbox to accomplish their goals, it can often be a daunting task to debug some of the issues that inevitably crop up during software development. This book provides the crucial details about how the CLR works internally, which you need to know to diagnose many classes of bugs in your .NET programs, and it provides clear examples of how to solve the same types of issues we see our customers struggle with on a daily basis. This book is required reading for all serious .NET developers." -Lee Culver, CLR Quick Response Team, Microsoft Corporation "Have you ever wondered why your .NET application is not responding? Or why it's intermittently consuming high CPU? Or crashing? When things go wrong you need to think low level, using the proper knowledge and tools to investigate the internals of your application. Advanced .NET Debugging delivers the knowledge necessary to quickly isolate nasty software problems. Welcome to the debugging world!" -Roberto A. Farah, Senior Premier Field Engineer, Microsoft Corporation "Mario Hewardt's Advanced .NET Debugging is an excellent resource for both beginner and experienced developers working with .NET. The book is also packed with many debugging tips and discussions of CLR internals that will benefit developers architecting software. I highly recommend Mario's book." -Jeffrey Richter, consultant, trainer, and author at Wintellect "This book talks about tools such as SOS in the kind of depth that I have not seen elsewhere. It's a definite aid in understanding and debugging managed application behavior." -Maoni Stephens, GC Developer, Microsoft Corporation "Advanced .NET Debugging is essential reading for someone who wants to get under the covers and obtain an intimate understanding of how the .NET Common Language Runtime works. It clearly identifies the layout of the system and how the assemblies are loaded and organized. I recommend it to anyone who wants to debug more complex issues brought on by synchronization problems and corruption. It also effectively addresses the difficult task of postmortem debugging." -Pat Styles, Microsoft Corporation
Notă biografică
Mario Hewardt, senior development lead at Microsoft, has pioneered Windows system-level development for more than a decade. He currently leads a development team that builds ground-breaking online IT management solutions. Hewardt is coauthor of Advanced Windows Debugging (Addison-Wesley, 2008).
Textul de pe ultima copertă
"Mario Hewardt's "Advanced .NET Debugging "is an excellent resource for both beginner and experienced developers working with .NET. The book is also packed with many debugging tips and discussions of CLR internals, which will benefit developers architecting software.""-Jeffrey Richter, consultant, trainer, and author at Wintellect" "Mario has done it again. His "Advanced Windows Debugging "(coauthored with Daniel Pravat) is an invaluable resource for native code debugging, and "Advanced .NET Debugging "achieves the same quality, clarity, and breadth to make it just as invaluable for .NET debugging.""-Mark Russinovich, Technical Fellow, Microsoft Corporation"The Only Complete, Practical Guide to Fixing the Toughest .NET Bugs "Advanced .NET Debugging "is the first focused, pragmatic guide to tracking down today's most complex and challenging .NET application bugs. It is the only book to focus entirely on using powerful native debugging tools, including WinDBG, NTSD, and CDB, to debug .NET applications. Using these tools, author Mario Hewardt explains how to identify the real root causes of problems--far more quickly than you ever could with other debuggers. Hewardt first introduces the key concepts needed to successfully use .NET's native debuggers. Next, he turns to sophisticated debugging techniques, using real-world examples that demonstrate many common C# programming errors. This book enables you to
- Make practical use of postmortem debugging, including PowerDBG and other "power tools"
- Understand the debugging details and implications of the new .NET CLR 4.0
- Master and successfully use Debugging Tools for Windows, as well as SOS, SOSEX, CLR Profiler, and other powerful tools
- Gain a deeper, more practical understanding of CLR internals, such as examining thread-specific data, managed heap and garbage collector, interoperability layer, and .NET exceptions
- Solve difficult synchronization problems, managed heap problems, interoperability problems, and much more
- Generate and successfully analyze crash dumps