Changes between Initial Version and Version 17 of Ticket #410


Ignore:
Timestamp:
Jan 17, 2016, 1:46:10 AM (8 years ago)
Author:
leper
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #410

    • Property Status newreopened
    • Property Milestone UnclassifiedBacklog
    • Property Owner changed from Philip Taylor to Yves
    • Property Type taskenhancement
  • Ticket #410 – Description

    initial v17  
    33Ideally there'd be a full graphical debugger with source code display and breakpoints and watches and stepping and so on. But that sounds really complex so maybe something simpler would be a more realistic idea.
    44
    5 !SpiderMonkey has a debug API that is presumably necessary for this. Are there any existing higher-level libraries or tools or debugger implementations that would be reusable here?
     5The implementation should use https://developer.mozilla.org/en-US/docs/Tools/Debugger-API (and likely also https://wiki.mozilla.org/Remote_Debugging_Protocol)
    66
    7 The debugger should be able to pause execution. That means the thread running scripts will be paused inside its JS API calls, and the simulation will be in an inconsistent state. We could perhaps allow the engine to keep running (by using a reentrant game loop, or splitting the simulation into a secondary thread), but we'd need to be very careful since the engine isn't currently designed to do that. It might be better to implement the debugger as part of Atlas (which runs in its own independent thread), so it can communicate with an entirely paused engine, and also so it can use wxWidgets for the UI.
     7The debugger should be able to pause execution. That means the thread running scripts will be paused inside its JS API calls, and the simulation will be in an inconsistent state. ~~We could perhaps allow the engine to keep running (by using a reentrant game loop, or splitting the simulation into a secondary thread), but we'd need to be very careful since the engine isn't currently designed to do that. It might be better to implement the debugger as part of Atlas (which runs in its own independent thread), so it can communicate with an entirely paused engine, and also so it can use wxWidgets for the UI.~~