changeset in /hg/icedtea: Forwardport Shark.

Andrew John Hughes ahughes at redhat.com
Wed Jun 10 13:45:30 PDT 2009


changeset bdb3cd6099a9 in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=bdb3cd6099a9
description:
	Forwardport Shark.

	2009-05-22  Gary Benson  <gbenson at redhat.com>

		* patches/icedtea-zero.patch
		(vmError.cpp): Don't include interpreterRuntime.hpp here.
		* ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp
		Include interpreterRuntime.hpp and scopeDesc.hpp.
		(ZeroStackPrinter::print_word): Decode pc to get bci.

diffstat:

3 files changed, 25 insertions(+), 4 deletions(-)
ChangeLog                                           |    8 ++++++++
patches/icedtea-zero.patch                          |    5 ++---
ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp |   16 +++++++++++++++-

diffs (76 lines):

diff -r 6909d3942630 -r bdb3cd6099a9 ChangeLog
--- a/ChangeLog	Thu May 21 14:26:47 2009 +0100
+++ b/ChangeLog	Wed Jun 10 16:59:23 2009 +0100
@@ -1,3 +1,11 @@ 2009-05-21  Gary Benson  <gbenson at redhat
+2009-05-22  Gary Benson  <gbenson at redhat.com>
+
+	* patches/icedtea-zero.patch
+	(vmError.cpp): Don't include interpreterRuntime.hpp here.
+	* ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp
+	Include interpreterRuntime.hpp and scopeDesc.hpp.
+	(ZeroStackPrinter::print_word): Decode pc to get bci.
+
 2009-05-21  Gary Benson  <gbenson at redhat.com>
 
 	* ports/hotspot/src/share/vm/shark/sharkCompiler.cpp:
diff -r 6909d3942630 -r bdb3cd6099a9 patches/icedtea-zero.patch
--- a/patches/icedtea-zero.patch	Thu May 21 14:26:47 2009 +0100
+++ b/patches/icedtea-zero.patch	Wed Jun 10 16:59:23 2009 +0100
@@ -151,14 +151,13 @@
  class ParkEvent ;
 --- openjdk/hotspot/src/share/vm/utilities/vmError.cpp.orig	2008-12-03 19:33:25.000000000 +0000
 +++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp	2008-12-03 19:40:11.000000000 +0000
-@@ -25,6 +25,11 @@
+@@ -25,6 +25,10 @@
  # include "incls/_precompiled.incl"
  # include "incls/_vmError.cpp.incl"
  
 +# ifdef ZERO
-+# include <interpreterRuntime.hpp>
 +# include <stackPrinter_zero.hpp>
-+# endif //
++# endif // ZERO
 +
  // List of environment variables that should be reported in error log file.
  const char *env_list[] = {
diff -r 6909d3942630 -r bdb3cd6099a9 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp
--- a/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp	Thu May 21 14:26:47 2009 +0100
+++ b/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp	Wed Jun 10 16:59:23 2009 +0100
@@ -22,6 +22,9 @@
  * have any questions.
  *
  */
+
+#include <interpreterRuntime.hpp>
+#include <scopeDesc.hpp>
 
 class ZeroStackPrinter {
  private:
@@ -190,15 +193,26 @@ class ZeroStackPrinter {
         }
       }
       if (frame->is_shark_frame()) {
+        SharkFrame *sf = frame->as_shark_frame();
+        methodOop method = sf->method();
+          
         if (word == SharkFrame::pc_off) {
           field = "pc";
+          if (method->is_oop()) {
+            nmethod *code = method->code();
+            address pc = sf->pc();
+            if (code->pc_desc_at(pc)) {
+              SimpleScopeDesc ssd(code, pc);
+              snprintf(_buf, _buflen, PTR_FORMAT " (bci %d)", pc, ssd.bci());
+              value = _buf;
+            }
+          }
         }
         else if (word == SharkFrame::unextended_sp_off) {
           field = "unextended_sp";
         }
         else if (word == SharkFrame::method_off) {
           field = "method";
-          methodOop method = ((SharkFrame *) frame)->method();
           if (method->is_oop())
             value = method->name_and_sig_as_C_string(_buf, _buflen);
         }



More information about the distro-pkg-dev mailing list