GeezerVison is showing github.com — Add diagnostics gathering feature to debugger and UI by hxrshxz · Pull Request #1297 · processing/processing4
Conversation
hxrshxz
commented
Oct 19, 2025
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Fixes #1294
Description
- Adds ability to gather system diagnostics from a running sketch through the debugger.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a diagnostics gathering feature to the debugger that allows developers to collect system information, memory statistics, and sketch runtime details from a running Processing sketch. The feature is accessible through a new menu item in the Debug menu and displays results in a formatted dialog with export capabilities.
Key Changes:
- New diagnostics collection system that gathers system properties, memory usage, sketch details, and display information
- Debug menu integration with "Gather Diagnostics" option that invokes the feature via JDWP
- Dialog interface for viewing, copying, and exporting diagnostic data
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File |
Description |
| DiagnosticsDialog.java |
New dialog UI for displaying formatted diagnostics with copy/export functionality |
| Debugger.java |
Adds menu item and implements remote diagnostics gathering via debugger connection |
| PDiagnostics.java |
Core diagnostics collection logic that gathers system, memory, and sketch information |
| PApplet.java |
Adds getDiagnostics() public method to enable remote invocation from debugger |
| PDE.properties |
Adds localization string for the new menu item |
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
glvjr reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Stefterv
commented
Oct 21, 2025
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
|
Hi @hxrshxz Thank you so much for this work!
A few things:
- Rather than communicating over JSON and writing a custom writer and parser, lets use the build-in communication in the Debug connection
- The debug connection is active even when the debugger is not connected in Java mode, so this is not limited to running a sketch with the Debugger active
- Rather than adding a whole new screen, let's just add it to the clipboard content that already exists when you click the version number
|
glvjr reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
hxrshxz
commented
Dec 16, 2025
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
|
Hi @benfry, thank you for the feedback. I've updated the PR to address your points:
- Direct JDWP Access: Switched to reading PApplet fields directly via JDI, removing the need for JSON or custom protocols.
- Universal Diagnostics: Implemented a static Debugger.getDiagnostics(Runner) that works for both Run and Debug modes without requiring an active debug session.
- Clipboard Integration: Simply appends sketch diagnostics to the existing version-click clipboard action. No new UI elements were added.
really sorry for taking so lonng
Screencast.from.2025-12-17.01-46-10.mp4
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Hey @Stefterv can you please have a look when you are free , thanks for your time
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Looks good @hxrshxz! Thank you!
Optionally, I think it would be good to add the same functionality to the new settings screen as the Generate Report button is much easier to find.
Also I think me and @catilac would need to think what kind of debug information would be helpful (renderer for example)
But neither are blockers for this PR so that can also be separate issues.
|
catilac reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Reviewers
catilac
catilac approved these changes
+1 more reviewer
Stefterv
Stefterv approved these changes
Reviewers whose approvals may not affect merge requirements
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|