Full description not available
D**V
An important addition to Advanced Wndows Debugging book
I've just started reading this book (see my notes on Software Generalist blog) and this review is written from the perspective of an unmanaged and native software engineer (the last phrase sounds funny). Being a member of a software support of a large software company I analyze crash dumps that have mscorwks.dll on their stack traces. So if you see them too this book helps you to understand what this DLL is all about and how to dig inside the hidden world of .Net it manages. I'm on page 26 and will update this review as soon as I finish the book in a few months. Please also see my review of the previous Mario's (co-authored with Daniel Pravat) book: Advanced Windows Debugging . It is of great importance to know .NET world for Windows maintenance engineers and I originally planned a similar book Unmanaged Code: Escaping the Matrix of .NET but didn't have time to finish :-)Dmitry VostokovSoftware Defect ResearcherFounder of Crash Dump Analysis PortalEditor-in-Chief of Debugged! MZ/PE magazineThe author of Windows Debugging: Practical Foundations and x64 Windows Debugging: Practical Foundations
D**I
Terrific Resource
When you get started with WinDbg, there is pain, difficulty, confusion. Eventually, through a ton of experience, things start to click and you gain some dexterity in figuring out the most complicated issues in your applications.Then you stumble across a book like this and you think "where were you 12 months ago when I first started this journey?"It's hard to say if there is any good beginner guide to WinDbg, as experience is the true teacher with that tool. But this is the best thing I've read on the topic and would highly recommend it if you are at the beginning or intermediate level with WinDbg.
C**R
Well worth it, even if you have experience in the field
Having had a number of years of experience using WinDBG and SOS for postmortem analysis I did not imagine this book would provide as much value as it does. The information is still very useful and relevant for todays versions of .NET. I also have Mario's Advanced Windows Debugging, which is outstanding.
S**T
Excellent Book!
Very detailed information on various methods and tools involved in the software diagnostics process of managed Windows .NET code. I found this book to be very helpful.
P**C
Excellent book for any .NET programmer
If you program for the .NET framework you *need* this book. It helps to take your debugging skills (as well as understanding of the platform) to the next level. How many times in the past have we tried to nail down a particularly tricky bug, and after hours (or days) of pulling at your hair, given up in despair and doubted our worth as a good programmer ? Well, if you have trodden down that path, then I am sure this book will help. I wish to warn you that this is not a book for a beginner nor for the faint-hearted. It will show you the tools, it will show you the way, but you will have to walk that path which begins by buying this book and reading it.If you already have Advanced Windows Debugging by the same author and have read it, then you should be in good shape to tackle this one. But if you haven't, fear not, you can still make it.The book is soft-bound, neatly printed in about 500 pages and contains 10 chapters divided into 3 parts. It doesn't weight much and can be easily carried around.Part 1 consists of 3 chapters. In the first chapter the reader is an introduction to the tools. The 2nd chapter - CLR fundamentals - contrary to its name, is not a high level overview for the newbie. Instead it is a wealth of information for all .NET programmers. No matter how senior a programmer you are, I will bet that you will still learn something (probably a lot) from this chapter. The 3rd chapter - Basic Debugging Tasks - is a bit lengthy (I don't mean that in a bad way) at about 100 pages, helps you get acquainted with the tools and commands.Part 2 consists of 4 chapters - Assembly Loader, Managed Heap and Garbage Collection, Synchronization and Interoperability. As you might guess from the names, it is pretty advanced. It is hard, but you will emerge with a much better and clearer understanding of the platform. The chapter on interoperability might not be useful for everybody, but for those who have felt the pain of COM interop or PInvoke this chapter pays for the price of the book many times over.Part 3 consists of the advanced-advanced topics. There is a chapter named Postmortem debugging which includes debugging problems when you have no access to the live machine and you cannot reproduce the problem locally. It consists of taking a dump file and analyzing it offsite. Not an everyday topic for most programmers, but you will surely be thankful for this chapter if you ever come across it. It also explains how the Windows error reporting works. The second last chapter is called PowerTools which includes discussion of PowerDbg which allows you to control native debuggers using powershell (how cool is that !). There is also information on Visual Studio integration with SOS and on CLR Profiler. The last chapter, a small one at about 15 pages, is on .NET 4.0 (based on Beta 1 release though).The writing style is very clear and precise. There are plenty of samples and some good diagrams to help your understand the concepts better (i loved them, a picture is worth a thousand words). In short, this is book worth purchasing and worth reading and worth reading again (which is what I am going to do).There is a support website for the book at advanceddotnetdebugging dot com.
P**R
Still applicable and amazing book
This was my first .Net internals book I purchased over 7 years ago when I started my job as a Escalation Engineer.. root cause analysis for the most difficult support tickets and production failures. In my opinion, up until Microsoft open sourced the Core CLR framework and before CLRMd was stable, I believe that this book was the only resource for many years that contained all the required information in a single/well structured format to teach how to use advanced debugging skills in production environments via Windbg and SOS. I personally struggled only using the internet/blogs and googling because although there is a wealth of information it is scattered, inaccurate at times and required a lot of time to also research "pre-req"/Background to even try to understand the material I would find.Although written around 2009 and the release of .Net 4.0, I still highly recommend this book as a starting point because the fundamentals and strategies outlined are still valid in 2018 and it is not uncommon to also have to troubleshoot legacy code.Mario does an amazing job in all of his books and courses. He also quickly and politely responded to all my emails on his old Microsoft email no matter how stupid the question was. I selfishly wish he would write another/current book using the same techniques and outlines he used in the past.
S**N
Easy to get lost in detail
Provides a detailed walk through of .net CLR heap etc.. but is poor on overall theory/structure and also guidence on using debug tools.There isnt enough overview/diagrams to let you orientate yourself to a maze of structures - i.e. It's basically a linear walkthrough thats easy to get lost inIt's dominated by listings of 'raw' memory dumps whose structures are often not made clear enough (there are diagrams - but not enough). A lot of the time your just following a trail of pointers and memory dumps of numbers. I didnt feel I was being helped to build a map /overview of what was going on.A major problem I had was that its all 32 bit addressing - most windows users are 64. This makes following the examples a bit more difficult - you have to relate your addresses to the authors e.g. the author in the sync section uses a memory address for an object not referenced since GC section over 70 pages earlier, I gave up at that point - as there would have been a lot of work to go back though the steps in GC to get that address to follow the Sync section exampleId still recomend it though - as there's nothing else out there that goes into detail about the CLR/.NET that I'm aware of. If youve got the time and patience to fill in the gaps - its contains a lot of useful information
B**N
Out of date, incomplete
I had high hopes, this so far has fallen very short. The book misses important points so you have no idea what bit of magic the author did to get he magic numbers he got. The errata and downloads aren't available anymore, the book's website is now an advert for some Oriental 'thing'. I am getting thwarted by almost every page because all the steps and reasoning aren't explained. It is a very, very painful journey unless you're already very savvy with CDB/NTSD etc.Once I'm past the initial stubling blocks of working with 64 bit and not having the souces files for the examples I'm getting on with it much better. There is a ton of knowledge in here, but you're gonna have to work around the holes yourself; on the plus side, that might mean you get a deeper understanding that you would have otherwise.
C**N
Extremely informative
Like many developers I moved to .Net from a traditional unmanaged C world. I was very familiar with low-level debugging in such an environment. This book is a superb source of knowledge in the new challenges of low-level debugging in .Net, and more importantly for me, in a mixed .Net / unmanaged world. I have reduced the memory footprint of one of my main applications and eliminated a number of annoying slow memory leaks, thanks to this book. It is a very information-dense book, not a primer, but that is exactly what you need when the problems get difficult.
A**S
WinDbg documentation in printed form
Well, I can't say I don't like the book. It is absolutely great for what it describes but somehow I expected a lot more.Basically, this book is just a well formatted summary of articles about WinDbg for .NET with a few extras.Most of the information from this book you won't ever need, other pieces are easy to google. That's why I wouldn't recommend it to anyone who has already an experience with WinDbg.Three stars rating is because1) book's title is totally misleading2) a lot of advanced topics are not described3) price is too high for something like this book
C**N
Very Hard to understand
Its very difficult, I don't understand because the samples is complex and the level for debugging is very sophisticated. end
Trustpilot
3 weeks ago
1 week ago