RFR: 6294277 java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
Coleen Phillimore
coleen.phillimore at oracle.com
Fri Jul 6 06:49:36 PDT 2012
Fred, This looks good. I had one question
in jvmtiEnvi.cpp you allocate the source_debug_extension with:
+ *source_debug_extension_ptr = (char *) jvmtiMalloc(strlen(sde)+1);
But in instanceKlass.cpp you deallocate it with:
+ if (_source_debug_extension != NULL) FREE_C_HEAP_ARRAY(u1, _source_debug_extension, mtClass);
In classFileParser, cpp you set the field by pointing to the classfile
stream.
u1* sde_buffer = cfs->get_u1_buffer();
I don't know if the first two are consistent wrt native memory tracking,
but the last one seems dangerous if you unload that class. I think
they should be allocated all the same with NEW_C_HEAP_ARRAY() so you can
deallocate it that way in release_C_heap_structures.
The rest looks good.
Thanks,
Coleen
On 7/5/2012 8:22 AM, Frederic Parain wrote:
> Greetings,
>
> The bug is described in details in the CR below.
>
> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6294277
> Webrev: http://cr.openjdk.java.net/~fparain/6294277/webrev.00/
>
> Tested with JPRT, sajdi and quick-jvmti.
>
> Thanks,
>
> Fred
>
More information about the hotspot-runtime-dev
mailing list