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 2019/04/19 15:57:00 UTC

[jira] [Comment Edited] (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=16822008#comment-16822008 ] 

Eric Milles edited comment on GROOVY-9076 at 4/19/19 3:56 PM:
--------------------------------------------------------------

How is the code compiled?  That is, what are the groovyc settings used?  I have found that using the "indy" option (or at least disabling the "int" optimization) instead of the default "fast-path" code generation yields simpler bytecode for the debugger to understand.  In the default mode, most methods have two paths through them and both paths get assigned the line number information of the method.  This tends to confuse the debugger.


was (Author: emilles):
How is the code compiled?  That is, what are the groovyc settings used?  I have found that using the "indy" option instead of the default "fast-path" code generation yields simpler bytecode for the debugger to understand.  In the default mode, most methods have two paths through them and both paths get assigned the line number information of the method.  This tends to confuse the debugger.

> 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
>            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
(v7.6.3#76005)