debug info inside lambda body

Richard Bair richard.bair at oracle.com
Mon Oct 7 09:25:23 PDT 2013


Oh good, this was the only problem I had with Lambda's leading up to JavaOne -- debugging didn't work. Glad to see this getting fixed!

On Oct 7, 2013, at 8:08 AM, Brian Goetz <brian.goetz at oracle.com> wrote:

> I think this is a straightforward omission.  I have filed:
>   https://bugs.openjdk.java.net/browse/JDK-8025998
> 
> On 10/7/2013 10:21 AM, Anna Kozlova wrote:
>> Hi guys,
>> 
>> 
>> 
>> we try to make the debugger work inside lambda body. As far as we can see
>> there is no local variable table generated for the method into which the
>> lambda was compiled.
>> 
>> E.g. for a lambda
>> 
>>        Runnable r = () -> {
>> 
>>             int i = 0;
>> 
>>         };
>> 
>> 
>> 
>> Generated bytecode is as following
>> 
>> 
>> 
>> // access flags 0x100A
>> 
>>   private static lambda$0()V
>> 
>>    L0
>> 
>>     LINENUMBER 1 L0
>> 
>>     ICONST_0
>> 
>>     ISTORE 0
>> 
>>    L1
>> 
>>     LINENUMBER 46 L1
>> 
>>     RETURN
>> 
>>     MAXSTACK = 1
>> 
>>     MAXLOCALS = 1
>> 
>> 
>> 
>> Because of that our debugger can't access local variable information through
>> JDI API. Was that intentional decision or will it be changed later?
>> 
>> 
>> 
>> Thank you
>> Anna Kozlova
>> JetBrains
>>  <http://www.intellij.com/> http://www.jetbrains.com
>> "Develop with pleasure!"
>> 
>> 
>> 
>> 
> 



More information about the lambda-dev mailing list