I got the following request (from one of our Java licensees)
which I believe would be worth your consideration:
In the J2SE 1.3.1 hotspot sources, between mid-February and
mid-March source drops, PrintCompilation was changed to be a
"product" flag instead of a "develop" flag in:
src/share/vm/runtime/globals.hpp
This looks like a very valuable change, because it will let end
users who run into method compiler problems build a .hotspot_compiler
file with exclude statements, and narrow down the problem to send a
test program to Sun. (Basically, use -XX:+PrintCompilation
-XX:-BackgroundCompilation and use binary search techniques to
exclude methods from being compiled until the application runs
correctly.) Without PrintCompilation, there doesn't seem to be
any easy way for an end user to narrow down method compiler problems.
However, as currently implemented, the name of the methods are not
printed in a product build. One typically get lines like this
with a product VM:
1 b (33 bytes)
2 !b (320 bytes)
- (0) inlining at bci 67
- (1) inlining at bci 1
3 b (74 bytes)
To get the method name printed some changes are needed:
"PRODUCT_RETURN" needs to be removed from
the declaration of print_short_name() in
src/share/vm/oops/methodOop.hpp
the implementation of print_short_name() in
src/share/vm/oops/methodOop.cpp
needs to be moved outside of the #ifndef PRODUCT .
the implementation of print_short_name() needs an #ifdef PRODUCT to
use external_name() in a product build, since internal_name() is not
available,
or other suitable fixes.
** Please consider making these changes for Ladybird (J2SE 1.3.1) **
( if at all possible )
Thanks,
-Carlos
which I believe would be worth your consideration:
In the J2SE 1.3.1 hotspot sources, between mid-February and
mid-March source drops, PrintCompilation was changed to be a
"product" flag instead of a "develop" flag in:
src/share/vm/runtime/globals.hpp
This looks like a very valuable change, because it will let end
users who run into method compiler problems build a .hotspot_compiler
file with exclude statements, and narrow down the problem to send a
test program to Sun. (Basically, use -XX:+PrintCompilation
-XX:-BackgroundCompilation and use binary search techniques to
exclude methods from being compiled until the application runs
correctly.) Without PrintCompilation, there doesn't seem to be
any easy way for an end user to narrow down method compiler problems.
However, as currently implemented, the name of the methods are not
printed in a product build. One typically get lines like this
with a product VM:
1 b (33 bytes)
2 !b (320 bytes)
- (0) inlining at bci 67
- (1) inlining at bci 1
3 b (74 bytes)
To get the method name printed some changes are needed:
"PRODUCT_RETURN" needs to be removed from
the declaration of print_short_name() in
src/share/vm/oops/methodOop.hpp
the implementation of print_short_name() in
src/share/vm/oops/methodOop.cpp
needs to be moved outside of the #ifndef PRODUCT .
the implementation of print_short_name() needs an #ifdef PRODUCT to
use external_name() in a product build, since internal_name() is not
available,
or other suitable fixes.
** Please consider making these changes for Ladybird (J2SE 1.3.1) **
( if at all possible )
Thanks,
-Carlos