Where is 64-Bit Debugging for Windows?

Published March 28, 2017 by
Geoff Perlman

Xojo 2017 Release 1 includes support for running and debugging 64-bit apps right from the IDE for macOS and Linux. Windows support is noticeably absent. Why? The answer is a bit complicated but interesting.

As you may know, Xojo’s compiler takes the code you write and translates it into a sort of meta-assembly language. Think of it as assembly code that is not specific to any particular processor. This part of the compiler is called the Front End. The Back End of the compiler takes that meta-assembly code and translates it into actual machine code for a particular processor such as x86 or ARM. We have been moving Xojo from our own compiler Back End to using an open source one known as LLVM which is used by Apple and others as well. It’s how we are building for 64-bit and it optimizes your code for speed, something our old compiler Back End did not do.

We depend on LLVM to provide us with the data we need to make debugging work. LLVM version 3.7 had the necessary support for macOS and Linux. LLVM version 4 has added this for Windows but it was released only a few weeks ago, not enough time for us to get it working for today’s release of Xojo 2017 Release 1. Although you don’t directly see LLVM when you use Xojo, it’s doing significant and important work. Switching from one major release of LLVM to another affects far more than just debugging so it must be done very early in our development of a release of Xojo. It’s likely that 64-bit debugging support for Windows will be available in Xojo 2017 Release 2.

64-bit support in Xojo may seem like a minor feature. After all, for most of you, switching from 32 to 64-bit is a single-click operation. However, for it to be that simple has required a huge amount of effort on our part. While you can still get by with 32-bit apps in most cases today, that won’t be true in the not-too-distant future. That’s why it’s critical we make it easy for you to switch. The importance of Xojo supporting 64-bit really can’t be overstated.

Remember that many features in Xojo take multiple release cycles to complete. That means that when the feature list is short, there’s working going on for future releases. When it’s long, much of that work may have been done during previous release cycles. It’s a curious fact of software development that sometimes features that seem simple on the outside are actually large and complex on the inside.