Welcome to MSDN Blogs Sign in | Join | Help

Notes from a dark corner

Debugging ASP.NET, the CLR and anything that uses clock cycles.

News

  • These postings are provided as is with no warranties, and confers no rights. Additionally, views expressed herein are my own and not those of my employer, Microsoft.
Windows Home Server Power Pack 1 - available now

I'm a Windows Home Server user (I've got one of the HP EX475 machines) and it's great - it just quietly sits there backing up my data, keeping an eye on my machines' status etc.

However, an important update has now been released - called "Power Pack 1" - which includes a number of important fixes and new features. Note that your system provider may well make this available to you via their own automatic update mechanisms. However if you want it now you can get it here. The released notes can be downloaded here. You can also read the development team's blog here.

One of the cool things about Windows Home Server is the extensibility story. It has an SDK (which has been updated for PP1) and as a result there is already a vast array of addins available, mostly provided for free by members of the Home Server Community.

For me the core feature of Home Server is its backing up of other computers on your home network. It can do a lot more (provide remote access, serve your music as a UPnP server, be a file share etc) but for me that is the crucial one. I was round at a friend's house at the weekend and he was saying how he didn't have any photos of a particular holiday he'd been on because it was when he first switched to digital photography and hadn't had a backup. It made me wonder just how many other people are out there with Gbs and Gbs of treasured photos, videos and other digital assets with blind faith in the infinite reliability of their hard disk. It's so easy to not do but so crucial when disaster strikes. Just remember though - Home Server does not back itself up (that would be a miracle!). It backs up the other machines on your network and does so with a considerable degree of fault tolerance (if you have sufficient disks in it like the EX475 and enough space on those disks to allow the data duplication feature to do its job). One of the new features that have been added in PP1 is the ability to back up and restore the content of your shared folders to an external hard drive.

HTH

Doug

Testing your Windows Internals knowledge

I see that we now have an exam in the making for testing knowledge of "Windows Internals". The exam is available for taking now, in beta form, and if you pass then you won't have to take it again once the final version is released. You can read more about how to take the exam here. You can read about preparing for the exam here.

I'm slightly confused by this on the prep page:

"Preparation Tools and Resources

To help you prepare for this exam, Microsoft Learning recommends that you have hands-on experience with the product and that you use the following training resources. These training resources do not necessarily cover all of the topics listed in the "Skills Measured" tab.

... 

Microsoft Press Books: There are no Microsoft Press books currently available. "

 

You would have thought the obvious preparation reading would be:

Microsoft® Windows® Internals, Fourth Edition: Microsoft Windows Server™ 2003, Windows XP, and Windows 2000

and if you can wait until January there should be a fifth edition of that book available.

I think another great source of relevant "inside" information for this exam is the Sysinternals site. If you don't already know the site, check out the tools, forums and blog posts there.

Another good point of reference is the online "Debugging Tools for Windows" documentation, particular in the section titled "Debugging Techniques".

The final point of reference is just doing it. When something goes wrong on your system or someone else's system, follow the rabbit down the hole and see where it takes you.

I'm not sure how I rate my chances of passing this. Although I do a lot of Windows systems debugging in my job it tends to be mostly user mode and I by the looks of it this exam will cover a lot of kernel mode stuff. We'll have to just wait and see :-)

HTH

Doug

Nice collection of Live Writer tips

Came across this:

http://lifehacker.com/395589/windows-live-writer-tweaks-tips-and-updates

v. handy if you're a Live Writer user

HTH

Doug

Software and the environment...

I'm pleased to see the launch of a new blog from Microsoft's Environmental Sustainability group.

Building a symbol tree when you don't have access to the internet

One of my colleagues in Israel asked me how you would go about downloading the correct symbol for a particular DLL or EXE that a customer had on their system. Normally we can just use Microsoft's public symbol server for this but in this case the system did not have internet access.

This is not an uncommon scenario and a great question. I was all set to right up a blog post about the wonders of SYMCHK.EXE that comes with the Debugging Tools for Windows package when I found this excellent blog post over on the ASKPERF site [a 'must subscribe' blog in my opinion].

In brief, on the machine without internet access you can use SYMCHK.EXE to create a manifest file describing the binaries of interest (you can specify a dump file, file on the file system or running process as the input source) and then port the manifest file to a system that does have internet access and use the manifest file as input to another run of SYMCHK that this time pulls the necessary files down from the public symbol server.

HTH

Doug

Useful tools and add-ons for IIS troubleshooting and IIS7

My esteemed colleague Mr Michael Clemens put together a very handy list of IIS diagnostic tools and add-on components. As Michael has not yet joined the blogging fold I'm taking this chance to publish it for him as it is very useful...

 

 

HTH

Doug

How to determine LARGEADDRESSAWARE from a dump file

This interesting little question came up on one of our internal email lists. Sometimes when debugging you want to know whether a particular process is linked using the /LARGEADDRESSAWARE flag and therefore capable of using usermode addresses above the 2Gb boundary.  Here is my solution:

!address -summary will show you the effective user mode address space for the process:

0:022> !address –summary
..
       Tot: 7fff0000 (2097088 KB) Busy: 278fd000 (648180 KB) <<< 2Gb for non-large-address-aware EXE or large address aware EXE on x86 system without /3Gb in boot.ini

or

       Tot: bd7f0000 (3104704 KB) Busy: 23dee000 (587704 KB) <<< 3Gb for large-address-aware EXE on x86 system with /3Gb in boot.ini

or

       Tot: ffff0000 (4194240 KB) Busy: 268b2000 (631496 KB) <<< 4Gb for large-address-aware EXE running with WoW64 on x64 system

However, since the first case is ambiguous, to actually see if the EXE is linked with /LARGEADDRESSAWARE or not do this:

0:000> !dlls -c inetinfo    <<< inetinfo is the module name of the EXE in this case]
Dump dll containing 0x01000000:

0x00081eb0: C:\WINDOWS\system32\inetsrv\inetinfo.exe
      Base   0x01000000  EntryPoint  0x0100326e  Size        0x00006000
      Flags  0x00004000  LoadCount   0x0000ffff  TlsIndex    0x00000000
             LDRP_ENTRY_PROCESSED
0:000> .shell -i - -ci "!dlls -f 0x00081eb0" FIND "characteristics"
     12F characteristics

The characteristics field in the header is the key: 0x12f & 0x20 == 0x20. This is the value of IMAGE_FILE_LARGE_ADDRESS_AWARE – see winnt.h in the Platform SDK for this and related definitions.

So this EXE is large address aware.

Note the above usage of the .shell command (which is used to shell to another EXE, in this case "FIND") is something I use all the time to filter the output of debugger commands. Very handy.

HTH

Doug

.NET 3.5 SP1 Beta,Visual Studio futures and Visual Studio present..

As ever, Scott Guthrie has the most comprehensive announcement blog about Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta but this is no ordinary service pack, this is a service pack packed [sic] with new features as well as fixes. For instance, there are major additions to WPF, IntelliSense support for ASP developers (yes, you read that right, ASP developers) and lots of new features for ASP.NET and AJAX developers. Brad's blog has lots of pictures of the new stuff but be warned - this is still in beta so usual caveats apply.

And whilst you try to digest that little lot, the legendary Roger Jennings talks in some depth about Visual Studio futures in VS 2008: The Road Ahead. Amongst other things it looks like we may be filling out the musical scale by elevating F# to a tier one language in Visual Studio with an eye to making the most of Parallel FX, PLINQ etc (looks like I need to commission that new dual quad core machine of mine :-) ).

And if you are still trying to play catch up with what Visual Studio 2008 is all about you can read Rogers' roundup and then read his description of the features that weren't included.

Doug

ODbgExt - debugger extension project

My colleague Nico brought to my attention a new debugger extension project over on Codeplex. Looks like an interesting project. You can read more about it here.

Doug

Live Mesh - "hands on" video

An interesting video to watch if you need an introduction to Live Mesh. Now in technical preview, to me it is like a coming together of FolderShare and Skydrive. With tight desktop integration, it allows you to synchronize files and folders between different devices and also a "virtual storage device in the cloud". The cloud storage is currently limited to 5Gb but you don't need to use it - you could just use Mesh is as a way to backup files between machines, perhaps with friends and family, and access you files from different locations.

Looks good.

Doug

Interesting tool for monitoring of client side of web applications

Microsoft Research have released a very interesting looking prototype of a tool for investigating the performance of the client side of web applications that use JavaScript on the client. You can download it here and there is a usage walkthrough here.

Looks useful.

Doug

Strange networking issues on Windows Server 2003 SP2? Recommended networking update available

An update is now available (via Windows Update, 'custom scan', high priority updates) which is highly recommended for anyone running Windows Server 2003 SP2.

You can read all about it here.

HTH

Doug

Debugging other peoples' code

I spend a lot of my day debugging other peoples' code, be it the code of my customers or code that Microsoft's developers have written. I also spend a little bit of my day writing and debugging my own code. I would say, on balance that I prefer debugging other peoples' code and that it is harder to debug my own code, at least when it comes to those gnarly hard to solve problems.

I think that is because when you debug someone else's code you are making fewer assumptions and are focused on the specific nature of the problem at hand rather than thinking about the rest of the application you are trying to develop when working with your own code. Of course the downside when debugging someone else's code is you don't necessarily understand what it is supposed to do, how it was supposed to work or why they wrote it that way!

I came across a quote from Albert Einstein which sums it up nicely:

"We cannot solve our problems with the same thinking we used when we created them".

Anyway, I'm off to debug something, anything.

Doug

Local dump collection in Windows Server 2008 and Vista Service Pack 1

Here is a neat new feature added to Windows Error Reporting (WER) in Windows Server 2008 and Windows Vista Service Pack 1 - you can now have WER generate and keep full user mode dumps of crashing applications.

HTH

Doug

Win prizes for searching the web :-)

http://www.bigsnapsearch.com

More Posts Next page »
Page view tracker