- Breakpoint menu
- Break key while editing
- Will initially have a hardcoded number of 16 breakpoints until we're ready to do 'N'
- Robot name match field and contents match field
- Add, Remove, Clear, (eventually Import and Export)
- Break key while editing
- Debugger
- Called in run_robot if breakpoints have been set
- Receives the mzx world pointer, a robot pointer, and a command pointer
- Vanilla
- Decompile line
- Check the decompiled line for breakpoints
- Decompile line
- Debytecode
- Before the testing begins, the user will be prompted whether the debugger should be active. If they answered no, the test play runs exactly like normal gameplay.
- When compiling the bytecode before editing, we'll preemptively insert dummy comments that store a starting offset in the source code and a length
- After compiling, we'll leave the source code in the robot
- If one of our dumb comments shows up, pull the line number out of it and exit back to run_robot
- If the pointer for the starting offset !=null, check the source for breakpoints.
- Offset = null, line length = 0
- Before the testing begins, the user will be prompted whether the debugger should be active. If they answered no, the test play runs exactly like normal gameplay.
- Exit if there were no successes
- Control loop
- Keys: intake (type command), break (breakpoint menu), F1 (help), F11 (counter debugger), ESC (continue)
- Commands: c/continue (continue), s/step (step), stop (make current robot immediately end execution; continue), stop all (end all robot programs; continue)
- Keys: intake (type command), break (breakpoint menu), F1 (help), F11 (counter debugger), ESC (continue)
- Called in run_robot if breakpoints have been set
Report ID | 548 | Title | Built-in Robotic Debugger |
Product | Archived Requests | Status | Implemented (Severity 3 - Medium) |
Version | 2.90b | Fixed in | GIT |
Page 1 of 1
Report ID #548: Built-in Robotic Debugger
#1
Lachesis
Posted 23 December 2012 - 06:28 AM
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
Page 1 of 1
Replies (1 - 12)
#2
ajs
Posted 23 December 2012 - 07:55 AM
Might be worth reviewing what Revvy did, though I assume doing it out of process like he did isn't something you'd want to do?
https://github.com/jdm/megazeux
--ajs.
https://github.com/jdm/megazeux
--ajs.
#3
Lachesis
Posted 25 December 2012 - 02:35 AM
This will be entirely within MZX. I will give Revvy's debugger a look before I start on this, at the very least. I doubt I will reuse any of it though.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#4
Lachesis
Posted 26 December 2012 - 02:12 AM
GIT a592e27 has an interface for defining "breakpoints", accessible by Alt+F11 while testing. To save time I made the boyer-moore search implementation I wrote for searches in the counter debugger more reusable and will use it to match points in the source code. As far as I'm concerned, predetermining locations of breakpoints is impossible/too much work at the moment due to the ability for robots to load in new code at any given point.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#5
Lachesis
Posted 26 December 2012 - 06:47 AM
Initial implementation in GIT 69dd544 pending review and bugtesting. It currently works for NORMAL MZX ONLY, not debytecode.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#6
Lachesis
Posted 26 December 2012 - 08:33 AM
This leaks memory like crazy because I'm dumb. Will push fix soon
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#7
Lachesis
Posted 26 December 2012 - 08:49 AM
Shouldn't leak all of your memory in GIT 5fce7bb.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#8
Lachesis
Posted 29 July 2013 - 07:25 PM
ajs; do you think anyone would feel bad if we shipped 2.84d without debytecode support for this and just threw it in the Debytecode Bug Pile?
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#9
Lachesis
Posted 22 March 2015 - 03:42 PM
i want a screen in this that shows how many commandos each robot on the board used last cycle and maybe cumulatively since board load
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#10
Lachesis
Posted 17 May 2017 - 12:20 AM
Added commando counting in GIT 8a83b5e
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#11
Lachesis
Posted 06 June 2017 - 07:38 AM
Updating status to: Flagged For Future Version
Updating version to: GIT (debytecode)
This is implemented for 2.85; debytecode implementation TBA.
Updating version to: GIT (debytecode)
This is implemented for 2.85; debytecode implementation TBA.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#12
Lachesis
Posted 28 June 2017 - 03:48 AM
Updating status to: Implemented
Updating version to: 2.90b
Issue fixed in: GIT
Debytecode support was implemented in GIT d0cff93 for inclusion in 2.90. Most of the other things planned for the robot debugger (watchpoints, goto/send) are implemented as of GIT 6efefa8 and due to be included in 2.90b. Further improvements should go in separate requests.
Updating version to: 2.90b
Issue fixed in: GIT
Debytecode support was implemented in GIT d0cff93 for inclusion in 2.90. Most of the other things planned for the robot debugger (watchpoints, goto/send) are implemented as of GIT 6efefa8 and due to be included in 2.90b. Further improvements should go in separate requests.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
Page 1 of 1
0 User(s) are reading this issue
0 Guests and 0 Anonymous Users
Powered by IP.Tracker 1.3.2 © 2025 IPS, Inc.