You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2020/12/14 16:06:00 UTC

[jira] [Commented] (GROOVY-9076) Debugger Step Into doesn't work in Groovy-compiled classes

    [ https://issues.apache.org/jira/browse/GROOVY-9076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17249077#comment-17249077 ] 

Eric Milles commented on GROOVY-9076:
-------------------------------------

I did a bit of testing on this issue as part of GROOVY-9373.  I noticed that "indy" enabled works fine and "indy" disabled (aka traditional call site caching) still has this issue.  As noted above, static compilation of the target class also steps properly in the debugger.  I am comparing these 3 different compilation results and I think I will be able to insert a bit of new bytecode before the call site array load instructions to help the debugger.  These changes would be specific to Groovy 2.5 and Groovy 3, since Groovy 4 has disabled the call site path.

> Debugger Step Into doesn't work in Groovy-compiled classes
> ----------------------------------------------------------
>
>                 Key: GROOVY-9076
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9076
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.5.6
>         Environment: $ java -version
> java version "1.8.0_211"
> Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
> Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
>            Reporter: Daniil Ovchinnikov
>            Assignee: Eric Milles
>            Priority: Blocker
>
> Please see https://github.com/dovchinnikov/debug-groovy-bug
> {code:title=GC.groovy}
> package foo.bar
> class GC {
>     GC() {
>         int i = 42
>     }
>     int getStuff() {
>         return 70
>     }
> }
> {code}
> {code:title=GMain.groovy}
> package foo.bar
> class GMain {
>     static void main(String[] args) {
>         new GC().stuff // set breakpoint here
>     }
> } 
> {code}
> This issue is reproducible with plain raw jdb:
> {noformat}
> $ ./gradlew clean classes
> $ jdb -classpath build/classes/groovy/main:<path to groovy-2.5.6.jar>
> {noformat}
> Inside jdb prompt:
> {noformat}
> > sourcepath src/main/groovy
> > exclude java.*,sun.*,com.sun.*,groovy.*,org.codehaus.groovy.*,org.apache.groovy.*
> > stop in foo.bar.GMain.main
> > run foo.bar.GMain
> {noformat}
> Then {{step}} until the end and observe the behaviour.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)