Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger [message #374302] Thu, 04 October 2018 03:00 Go to next message
Anonymous
Karma:
Originally posted by: Melody Ayres-Griffiths

Call it the ‘butterfly debugger’. People at KansasFest 2018 were excited by the development possibilities of microM8’s ‘rewind’ feature – the one that lets you cheat at games by going back before you made a mistake and trying again. They pointed out that a programmer could go back before a crash and then rewind to just before it when all the conditions were exactly the same, and then step-through or trace the crash – this solves the reproducibility issue that plagues much of debugging.

Unfortunately, microM8’s debugger was non-existent. There was a machine-language monitor and not much else. And so we made it a priority to create a debugger – not just any debugger, but one that could rival the established players in the Apple II emulation space, with all the features a programmer would expect.

Since microM8 is written in golang and Go has a built-in web server, it seemed appropriate to make the debugger web-based. This allowed for the use of a Javascript interface framework to speed development and allow the debugger to provide more visible information than would be possible inside the emulation environment. And because it’s in the browser everything is point-and-click.

It made sense to have a video window so you could see what was happening on single-screen systems. There are controls across the top for stepping (in, out and over), managing traces (you can start and stop them whenever you like!), changing the CPU speed and, most importantly perhaps, for the recorder – the feature that makes our debugger different from everyone else’s.

The stack, memory (viewing, searching and editing), softswitches, breakpoints and settings are all organised in tabs with the video reference image, so that the execution backlog, CPU state and lookahead information stays on the screen at all times. Recordings are saved to disk so you can go back to them anytime. The entire debugger state, including the state of memory, can be stored for later and retrieved. Memory blocks can be saved and loaded. Other notable features include the ability to search and set breakpoints in auxiliary memory, and the ability to change softswitches on-the-fly.

You can check out all the features on the debugger help page here: https://paleotronic.com/microm8/help/web-debugger/

You can download microM8 here: https://paleotronic.com/microm8/download/

Need a feature? Let us know and we'll implement it!
Re: Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger [message #375035 is a reply to message #374302] Sat, 27 October 2018 05:24 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: sec5193

On Thursday, October 4, 2018 at 12:00:17 AM UTC-7, Melody Ayres-Griffiths wrote:
> Call it the ‘butterfly debugger’.

Call it "reverse debugging", which has been the standard term for decades (see https://undo.io/resources/blog-articles/reverse-debugging-ti me-travel-debugging-brief-hist/).


> for the recorder – the feature that makes our debugger different from everyone else’s.

Not true. Not even the first on the Apple II. An accurate history is that you guys attended Aiiee's session at KFest back in July, saw its description of the old idea of reverse debugging and impending connection between its old time travel newly capable of playing backwards instruction by instruction and existing debugger features -- then decided to copy the feature without acknowledging the immediate source of the idea on the Apple II or decades of work in this area by many others on many systems.

Is your the definition, as you write, "a programmer could go back before a crash and then rewind to just before it when all the conditions were exactly the same, and then step-through or trace the crash"? If so, Aiiee has been doing this for over two KFests, and back in August Omnivore added coarse (not instruction level) backtracking, leaving micro M8 at best 3rd on the Apple II.


Also, why does micro M8 put out press releases for features, such as 3.5 disk and (buggy) mouse support, that many other Apple II emulators have had working (correctly) for decades? What user is going to switch from their emulator that has supported the mouse to an emulator that newly supports buggy mouse? It's surprising that an emulator has been in public release for so long without such standard features! The accepted practice is to record minor features and bug fixes internally or on a project's web site or repository -- saving advertising, which seizes people's valuable time and attention, for occasional major releases.

Tom Phelps
Re: Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger [message #375036 is a reply to message #375035] Sat, 27 October 2018 05:41 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Melody Ayres-Griffiths

We released 'rewind' support in early 2017, so I'm afraid you have that wrong. But hey, I get the vibe from the rest of your message that (for whatever reason but I think we can all guess) you have a problem with us so I'm not going to bother addressing the rest of your rant.

On Saturday, October 27, 2018 at 8:24:01 PM UTC+11, sec...@gmail.com wrote:
> On Thursday, October 4, 2018 at 12:00:17 AM UTC-7, Melody Ayres-Griffiths wrote:
>> Call it the ‘butterfly debugger’.
>
> Call it "reverse debugging", which has been the standard term for decades (see https://undo.io/resources/blog-articles/reverse-debugging-ti me-travel-debugging-brief-hist/).
>
>
>> for the recorder – the feature that makes our debugger different from everyone else’s.
>
> Not true. Not even the first on the Apple II. An accurate history is that you guys attended Aiiee's session at KFest back in July, saw its description of the old idea of reverse debugging and impending connection between its old time travel newly capable of playing backwards instruction by instruction and existing debugger features -- then decided to copy the feature without acknowledging the immediate source of the idea on the Apple II or decades of work in this area by many others on many systems.
>
> Is your the definition, as you write, "a programmer could go back before a crash and then rewind to just before it when all the conditions were exactly the same, and then step-through or trace the crash"? If so, Aiiee has been doing this for over two KFests, and back in August Omnivore added coarse (not instruction level) backtracking, leaving micro M8 at best 3rd on the Apple II.
>
>
> Also, why does micro M8 put out press releases for features, such as 3.5 disk and (buggy) mouse support, that many other Apple II emulators have had working (correctly) for decades? What user is going to switch from their emulator that has supported the mouse to an emulator that newly supports buggy mouse? It's surprising that an emulator has been in public release for so long without such standard features! The accepted practice is to record minor features and bug fixes internally or on a project's web site or repository -- saving advertising, which seizes people's valuable time and attention, for occasional major releases.
>
> Tom Phelps
Re: Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger [message #375063 is a reply to message #375035] Sat, 27 October 2018 22:12 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: jason

Calm down, Tom.
Re: Re: Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger [message #375080 is a reply to message #375035] Sun, 28 October 2018 22:41 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: kegs

In article <d22cc9d8-f70a-4cef-9db0-2f4ce764c573@googlegroups.com>,
<sec5193@gmail.com> wrote:
> that you guys attended Aiiee's session at KFest back in July, saw its

Where can I download Aiiee?

Kent
Re: Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger [message #375086 is a reply to message #374302] Mon, 29 October 2018 10:03 Go to previous messageGo to next message
zellyn is currently offline  zellyn
Messages: 173
Registered: April 2013
Karma: 0
Senior Member
On Thursday, October 4, 2018 at 3:00:17 AM UTC-4, Melody Ayres-Griffiths wrote:
> Call it the ‘butterfly debugger’.

Hey Melody. This is fantastic. I *love* the idea of debugging from a web browser, and incorporating time-travel debugging into an Apple II emulator is amazing.

You two just keep pumping out features. As the (desultory) author of a Go emulator that really only works for me, I'm in awe of how much work you've been putting into microM8!

Zellyn
Re: Going Back in History to Swat Bugs: microM8’s New Web-Based Time-Bending Debugger [message #375087 is a reply to message #375086] Mon, 29 October 2018 12:29 Go to previous message
Anonymous
Karma:
Originally posted by: Ernie Soffronoff

Tom's post annoyed me so much I just went and sponsored the Patreon to spite him. I know he won't care, but hopefully microM8 will benefit. There's room in this hobby for everyone. Being decades old there'll always be arguments about firsts, but I'll take active development / refinement of things that interest me every time. If the press releases trigger more supporters and that funnels back into more development so be it... worked for me.

--Ernie
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Disk II cable interface pins
Next Topic: Avalon Hill Legionnaire Manual?
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Mar 29 03:39:46 EDT 2024

Total time taken to generate the page: 0.03688 seconds