Random collection of notes, personal tips, and general things.

Bits & Bytes

  • Follow Us on Twitter!
  • LinkedIn

Getting started with ntsd - version check

ntsd is a low level debug utility for Windows.

When using ntsd to debug a .Net managed code application, care needs to be taken to use the right version of ntsd and the sos .net debugger extension

There's a 64 bit version and a 32 bit version of both ntsd and sos.dll

If the application is set (or left as default) with a configuration of AnyCPU, the output will be 32 bit.

When this is loaded into the x64 version of ntsd ...

... and the x64 version of SOS.dll is loaded ...

 

... ntsd will flag the target as x86 & attempts to use SOS will throw an error.

Either switch then to the x86 version of ntsd (C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\ntsd) and SOS.dll (.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll) or switch the .net app to be x64 instead