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

Breakpoint-based stream debugger #5

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

Soarex16
Copy link
Owner

@Soarex16 Soarex16 commented Apr 5, 2023

Currently new stream debugger under heavy rewrite (after PoC).
So to prevent conflicts with upstream, reviewed changes will be merged here instead of the master.

(cherry picked from commit 1aa6bd8)

Refactor all breakpoint tracer related logic

Add ability to load compiled classes into target VM

(cherry picked from commit d29c75f)

Add errors reporting

Fix value keeping

(cherry picked from commit 299d39b)

Add ability to intercept qualifier expression stream

Unify breakpoint resolving mechanism
Add draft for breakpoint based library support
Replace redundant @throws annotations with doc comments

(cherry picked from commit 8ad03fe)

Code cleanup based on code review

(cherry picked from commit a04d577)

Experiments with value formatting

(cherry picked from commit 4668757)

Replace helper class compilation with precompiled class loading

Remove runInDebuggerThread helper method because it causes misunderstanding on which thread the action will be dispatched

(cherry picked from commit 06a6931)

Add ability to choose stream tracing engine in registry on the fly

Remove unused code
Remove redundant runInEdt, because TraceStreamAction does is by itself

(cherry picked from commit f512118)

Refactor value manager and dependent classes to provide fresh suspend context.

Move ValueContext into separate implementation
Fix bug in value interception when stream chain contains multiple calls of the same stream operator
Move code for disabling object collection into separate entity named ObjectStorage

Move value interception logic from JavaMethodBreakpointFactory to ValueCollector

Fix problem with step out

Add test case for breakpoint based stream tracer

Add forEach support

Keep return value of called methods

Remove useless comments

Add more tests for breakpoint based engine

Fix null pointer exception when keeping method return value from being collected by GC

New stream debugger architecture prototype

Make method invocation inside value manager context more convenient

Better naming

Fix result formatting

Move Stream Debugger support lib into separate artifact

Now all helper classes are built into a separate jar file, which is built during the idea compilation

Proof-of-concept of method exit value sniffing

(cherry picked from commit 1aa6bd8)

Refactor all breakpoint tracer related logic

Add ability to load compiled classes into target VM

(cherry picked from commit d29c75f)

Add errors reporting

Fix value keeping

(cherry picked from commit 299d39b)

Add ability to intercept qualifier expression stream

Unify breakpoint resolving mechanism
Add draft for breakpoint based library support
Replace redundant @throws annotations with doc comments

(cherry picked from commit 8ad03fe)

Code cleanup based on code review

(cherry picked from commit a04d577)

Experiments with value formatting

(cherry picked from commit 4668757)

Replace helper class compilation with precompiled class loading

Remove runInDebuggerThread helper method because it causes misunderstanding on which thread the action will be dispatched

(cherry picked from commit 06a6931)

Add ability to choose stream tracing engine in registry on the fly

Remove unused code
Remove redundant runInEdt, because TraceStreamAction does is by itself

(cherry picked from commit f512118)

Refactor value manager and dependent classes to provide fresh suspend context.

Move ValueContext into separate implementation
Fix bug in value interception when stream chain contains multiple calls of the same stream operator
Move code for disabling object collection into separate entity named ObjectStorage

Move value interception logic from JavaMethodBreakpointFactory to ValueCollector

Fix problem with step out

Add test case for breakpoint based stream tracer

Add forEach support

Keep return value of called methods

Remove useless comments

Add more tests for breakpoint based engine

Fix null pointer exception when keeping method return value from being collected by GC

New stream debugger architecture prototype

Make method invocation inside value manager context more convenient

Better naming

Fix result formatting

Move Stream Debugger support lib into separate artifact

Now all helper classes are built into a separate jar file, which is built during the idea compilation

Fix firEach(Ordered) test for breakpoint based engine
@Soarex16 Soarex16 force-pushed the new-stream-debugger branch from b9fc7a9 to 7a4bdc8 Compare April 5, 2023 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant