groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Milles (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GROOVY-8289) STC and default value in ctor is causing debugging error
Date Tue, 15 Aug 2017 15:14:00 GMT
Eric Milles created GROOVY-8289:
-----------------------------------

             Summary: STC and default value in ctor is causing debugging error
                 Key: GROOVY-8289
                 URL: https://issues.apache.org/jira/browse/GROOVY-8289
             Project: Groovy
          Issue Type: Bug
          Components: bytecode
    Affects Versions: 2.4.12
            Reporter: Eric Milles
         Attachments: C1.txt, C2.txt

When debugging in the IDE, there is a curious behavior where it looks like step requests are
not being respected.  One thing I have found is that JDWP requests to the JVM process are
failing to resolve the variable "this" in certain cases.  I need some help from someone who
knows the bytecode better than myself to figure out where the problem lies.

Original issue: https://github.com/groovy/groovy-eclipse/issues/312

I have narrowed it down to a small bit of code with static compilation enabled.
{code}
@groovy.transform.CompileStatic
class C {
  String string
  C(String s = null) { string = s }

  static void main(args) {
    def c = new C('') // put breakpoint on this line, run as Java app, and step
    println c
  }
}
{code}
Debug stepping fails when executing the constructor for C.  If I use {{new C(string:'')}},
the generated default constructor is used instead and debugging works fine.  Also, if I explicitly
define the 2 constructors, debugging works fine.  So I think it has something to do with the
generated constructor.

I dumped the class file using javap and have attached them.  {{C1.txt}} is for the code above.
 {{C2.txt}} is the above with the named args constructor used instead.  I'm not sure if the
local args table for the default constructor is bad and that is why "this" cannot be resolved.

There are several similar bugs reported for other tools and whatnots when looking for "JDWP
error code 35".  Hopefully, these help point to something in the bytecode that can be corrected.

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=5005668
https://bugs.openjdk.java.net/browse/JDK-4992932



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message