Remote Debugging Enhancement Idea

Remote Debugging in Xojo is perhaps one of my favorite features in Xojo because it lets me work in the environment of my choice (macOS) and run it on any Windows, Linux, or even another Mac on my network, or in my many VM environments.  One of the things that’s always bugged me about remote debugging is the cycle time.  Every time you do a remote debug the IDE sends everything (executable, libraries, resources), again, to the remote debugger.  Even a simple change requires that the entire package is transferred to the remote debugger.  Every.  Single.  Time.

Xojo improved the cycle time for deploying web apps to Xojo Cloud in 2016 Release 4.  They did this by caching the framework and plugin libraries on the Xojo Cloud server.  When connecting to the Xojo Cloud server it tells the IDE what frameworks and plugin libraries it has and the IDE then decides what to upload.  So your first upload may take four or five minutes but subsequent uploads using the same version of Xojo take considerably less time.  In my case it’s about a minute.  It’s a welcome speed up.

In remote debugging, large projects can often take a LONG time to send simply due to their size.  I find myself debating on whether to install the IDE in that environment (along with prerequisite plugins), or to simply wait through the remote debug cycle.  Sometimes it’s a wash, but, I’ll be honest, it’s irritating to spend the three minutes transmitting to the remote debugger only to have to quit almost right away and change a label or a single line of code, only to have to sit through the transmit time again.

Why can’t they do the same thing for Remote Debugging that they did for deploying to Xojo Cloud?  Think of the time savings this change could do for someone that does a LOT of remote debugging like I do!

Time savings aside, there ARE some drawbacks.  The first is that the Remote Debugger becomes a much more complicated mechanism than it already is.  Since much of the code is (presumably) portable from Xojo Cloud to the Remote Debugger this might be a moot issue.  However, converting from whatever they’re using on Xojo Cloud (presumably Xojo) to desktop use may not be trivial.  It’s hard to say without asking that question.

Secondly, it would have to store all of these libraries and frameworks in a cache and then what would you do for cleanup?  When it quits delete these caches or keep them around?  I could argue for both ways.  Perhaps that’s a preference setting with maybe a quick calculation on how large the current cache is?

Third, it distracts from 64-bit Remote Debugging.  Maybe.  If I had the choice I’d love both, but if it meant delaying 64-bit for six months I’d rather have 64-bit now.  This is a wish list item, after all.

I created Feedback ID 46848 to get this idea into circulation.

What do you think about this idea, Xojo Developers?  What other pain points do you have with Remote Debugging?

4 thoughts on “Remote Debugging Enhancement Idea

  1. Great idea!

    When you quit app in remote debugger, it could leave the files on disk.
    If next transfer comes and it’s other app, delete the last one.
    If it is same app identifier, send Xojo IDE a list of files and checksums they have. then IDE can send the changed files only.
    This could be a little change with maybe only a small extra message in each direction.

      • Well, I can’t know.
        But it would be nice if someone at Xojo Inc. could spend a few hours on this and see what they can do.
        e.g. within one session, you could avoid transferring the xojo framework for example.
        Would be nice bullet point on the release notes.

        • Making this change, wouldn’t the Remote Debugger need to know how to put a bundle together on Mac OS X? Currently the IDE just zips everything up and sends it across the network, bundle and all. If you only transferred things that had changed the Remote Debugger Stub would have to be a whole lot smarter on what do to to start the build.

          It was just a thought. When Norman says it’s not a ‘little change’ I guess I’ll worry about after 64 bit Remote Debugging is foolproof, when Interops is functioning, when Android is usable, etc.

Comments are closed.