Ask a questionAsk a question
 

AnswerCurious about x64 .net

  • Friday, October 30, 2009 2:08 AMlpszDan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Is it already supported by VS?
    Does it have a separate runtime?
    And what's the debugging API for it? So can a 32bit debugger debug 64 bit .net code?
    Thanks,
    Dan

Answers

  • Friday, October 30, 2009 3:21 PMRay M_ Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    It's been supported since .Net 2.0, there's no change in the debugging API and you just can use visual studio to debug, the only thing thats different is that Edit and continue doesn't work for 64 bit processes.
  • Friday, October 30, 2009 3:45 PMKarel ZikmundMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Also I think that the debugger process has to be of the same bitness as the debugee. So no cross-platform debugging.

    -Karel
  • Monday, November 02, 2009 5:52 PMRick ByersMSFT, OwnerUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    And yes, it is a completely separate runtime (built mostly from the same source of course).  If you install the .NET framework on a 64-bit OS, it'll install both the 32-bit and 64-bit runtimes (eg. c:\windows\microsoft.net\framework64 and ...\framework).  Note that VS gets around the same-bitness-debugging restriction (since devenv.exe is always a 32-bit process) by transparently using the remote debugging infrastructure (msvsmon.exe) when debugging 64-bit apps.  Other than the feature differences (no EnC, mixed-mode debugging only in CLR v4+), you shouldn't notice the difference.  Of course you need to be careful when doing any sort of native interop from your app - the whole process is either 32-bit (running in the WOW on 64-bit OSes) or 64-bit.

    Rick

All Replies

  • Friday, October 30, 2009 3:21 PMRay M_ Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    It's been supported since .Net 2.0, there's no change in the debugging API and you just can use visual studio to debug, the only thing thats different is that Edit and continue doesn't work for 64 bit processes.
  • Friday, October 30, 2009 3:45 PMKarel ZikmundMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Also I think that the debugger process has to be of the same bitness as the debugee. So no cross-platform debugging.

    -Karel
  • Monday, November 02, 2009 5:52 PMRick ByersMSFT, OwnerUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    And yes, it is a completely separate runtime (built mostly from the same source of course).  If you install the .NET framework on a 64-bit OS, it'll install both the 32-bit and 64-bit runtimes (eg. c:\windows\microsoft.net\framework64 and ...\framework).  Note that VS gets around the same-bitness-debugging restriction (since devenv.exe is always a 32-bit process) by transparently using the remote debugging infrastructure (msvsmon.exe) when debugging 64-bit apps.  Other than the feature differences (no EnC, mixed-mode debugging only in CLR v4+), you shouldn't notice the difference.  Of course you need to be careful when doing any sort of native interop from your app - the whole process is either 32-bit (running in the WOW on 64-bit OSes) or 64-bit.

    Rick