You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Log breakpoints are not a specific type of breakpoint, rather it is a breakpoint which triggers an action, which is logging an expression.
They offer the choice to not enter debug mode when hit.
Let's review what options are offered in other debuggers:
OllyDbg 1.x:
OllyDbg offers to execute diverse actions depending on whether a condition is fulfilled, etc. It can also cast the logged expression to a struct/string/etc. pointer for proper display.
OllyDbg 2.x:
OllyDbg goes a bit further, removes support for plugin (temp?) and is able to log several expressions
Visual Studio:
VS has more basic logging, but being a source-based debugger, can support symbols as well.
Actions
Add a textedit for an expression. When bp is hit & conditions are met (in pseudo-language)
Have the memory view set viewport at a particular expression (e.g. a1+4) when bp is hit
Keep navigation stack so you can return to a previous location instead of typing it again.
Right-click on location => in contextual menu, offer option to set or modify a memory bp / dump with this location as base address / highlight (change background color)
location under cursor to be interpreted with base conversion (8-bit, 16-bit, 32-bit). Detect if it is an address pointing to a code / variable section
select range (mouse selection or R-click, select x bytes from here) and ability to copy / dump selection, may be useful for tile extractors? Offer inline string decoding options (e.g. display converted SJIS)
Enable more interactions with the symbols list?
Actions
Add a textedit for an expression. When bp is hit & conditions are met, update memory view
Mockup
Other improvements
Auto-load (auto-save?) Map symbols
Remember bps when emulator is restarted
Label breakpoints / comment field?
how to handle memory bps when a system library writes into a buffer? (no break currently)
Sorry if it looks like a wishlist of mine... Also, I do not use the Ge debugger so can't comment on it.
The text was updated successfully, but these errors were encountered:
Logging doesn't seem crazy, but I don't really see myself using it much. I could definitely be wrong.
Definitely one could do a lot more with the memory view.
Well, iirc, "on change" doesn't work. It could work by, every time it breaks, checking the value and setting the old historic value if it changed or something.
Symbols - there's a config setting for that, AutoSaveSymbolMap. Set it in ppsspp.ini.
I actually like it "forgetting" breakpoints on restart, which is what Visual Studio does I thought. I wouldn't mind if it remembered them and just had them disabled by default, though. They're almost "bookmarks" (which is a feature of Visual Studio I use quite a bit.) Labels probably make sense if we keep them.
Memory breakpoints when HLE writes is a pain. The biggest problem is that it will cause a performance impact (even when there are no breakpoints) if done the most obvious way. But we'll want to do it eventually.
Log messages now exist - and now that we have a debugger API (#10909), a lot of these features could be automated via API client for specific use cases - which I think is more powerful.
We also do now have a navigation stack (so does the web debugger UI already.)
I'm going to close this - we can open specific issues for specific improvements.
PPSSPP has made huge leaps recently in the debugging department thanks to great contributions by @Kingcom and @unknownbrackets (#2584, #3366).
I'm opening this meta-issue to discuss what improvements could be made to make it even awesomer.
Feel free to input your opinion below.
Here is the current state of the Breakpoint Window:
Log breakpoints are not a specific type of breakpoint, rather it is a breakpoint which triggers an action, which is logging an expression.
They offer the choice to not enter debug mode when hit.
Let's review what options are offered in other debuggers:
OllyDbg offers to execute diverse actions depending on whether a condition is fulfilled, etc. It can also cast the logged expression to a struct/string/etc. pointer for proper display.
OllyDbg goes a bit further, removes support for plugin (temp?) and is able to log several expressions
VS has more basic logging, but being a source-based debugger, can support symbols as well.
Actions
if bp.expr.valid(): log(expr.eval(currMIPS))
Cannot build on ArchLinux 64bit #2 - Enhancements to memory view
Actions
Mockup
Other improvements
Sorry if it looks like a wishlist of mine... Also, I do not use the Ge debugger so can't comment on it.
The text was updated successfully, but these errors were encountered: