Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug Point Browser integration #697

Merged
merged 14 commits into from
Mar 15, 2024

Conversation

adri09070
Copy link
Contributor

Needs pharo-project/pharo#16177 to be merged first.

This PR integrates the debug points browser, a new tool to visualize and configure existing debug points. (Full details on the new debug point model are described in the PR above)

The tool can be opened via the Debug > Debug Point Browser world menu and looks like that:

image

On the top-left, a table allows to visualize all debug points (breakpoints/watchpoints/etc.)
Each debug point has a name (more a tag than a name) that can be edited directly in this table.
The "enabled" state of the debug point is also displayed, as well as the scope of the debug point (class or object)

All behaviors of the selected can be configured via the right pane of debug point browser

When a debug point is selected, according to the target of the debug point, different information are displayed.
If the target is an AST node, the code of the concerned method is displayed (like in screenshot below), while highlightingthe corresponding code
If the target is an instance variable, all concerned methods are listed and selecting a method display displays the corresponding code and highlights the correct variable accesses:

image

It is possible to filter the displayed debug points by name, thanks to an input field at the top:

image

To set object-centric debug points, the left-most button in the inspector toolbar allows to do the same thing in the same way as current object-centric breakpoints:

image

Last but not least, it is also possible to change the scope of an existing debug point to an object, which was not possible before.
The third button in the inspector toolbar allows to do that and opens a modal to choose a debug point whose scope should be changed to the inspected object:

image

@adri09070 adri09070 added enhancement New feature or request debugger labels Feb 15, 2024
@adri09070 adri09070 closed this Feb 28, 2024
@adri09070 adri09070 reopened this Feb 28, 2024
@adri09070 adri09070 closed this Feb 29, 2024
@adri09070 adri09070 reopened this Feb 29, 2024
@adri09070
Copy link
Contributor Author

Maybe this failing test is related, I should investigate:
LinkInstallerTest>>#testSlotOrVarLinksRemainAfterMethodModificationForObject

@adri09070
Copy link
Contributor Author

Needs pharo-project/pharo#16268 to be merged first because it relies on the Calypso package that will be loaded after that PR is merged

@adri09070 adri09070 closed this Mar 6, 2024
@adri09070 adri09070 reopened this Mar 6, 2024
@adri09070 adri09070 closed this Mar 14, 2024
@adri09070 adri09070 reopened this Mar 14, 2024
@adri09070 adri09070 marked this pull request as ready for review March 14, 2024 13:56
@adri09070
Copy link
Contributor Author

To me, this is now ready for review @StevenCostiou

@estebanlm
Copy link
Member

the prerequisites are merged.
I am rerunning the tests.

@estebanlm
Copy link
Member

failing test is not related. Is @StevenCostiou approves, this can be merged

@Ducasse
Copy link
Contributor

Ducasse commented Mar 15, 2024

Synced with steven -> ok

@Ducasse Ducasse merged commit 937a4e9 into pharo-spec:Pharo12 Mar 15, 2024
1 of 2 checks passed
@StevenCostiou
Copy link
Member

There are a lot of changes, but only additions (the browser).
It should be merged and be experimented.
There will not be any impact if it is not used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
debugger enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants