diff agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents d7cb88bd7046
children 89152779163c
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js	Tue Apr 01 14:09:03 2014 +0200
+++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js	Tue Apr 01 13:57:07 2014 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -371,23 +371,19 @@
    return sa.dbg.lookup(dso, sym);
 }
 
-function loadObjectContainingPC(addr) {
-    if (sa.cdbg == null) {
+// returns the ClosestSymbol or null
+function closestSymbolFor(addr) {
+   if (sa.cdbg == null) {
       // no CDebugger support, return null
       return null;
-    }
-
-    return  sa.cdbg.loadObjectContainingPC(addr);
-}
-
-// returns the ClosestSymbol or null
-function closestSymbolFor(addr) {
-    var dso = loadObjectContainingPC(addr);
-    if (dso != null) {
-      return dso.closestSymbolToPC(addr);
-    }
-
-    return null;
+   } else {
+      var dso = sa.cdbg.loadObjectContainingPC(addr);
+      if (dso != null) {
+         return dso.closestSymbolToPC(addr);
+      } else {
+         return null;
+      }
+   }
 }
 
 // Address-to-symbol
@@ -808,16 +804,6 @@
 // VM type to SA class map
 var  vmType2Class = new Object();
 
-// C2 only classes
-try{
-  vmType2Class["ExceptionBlob"] = sapkg.code.ExceptionBlob;
-  vmType2Class["UncommonTrapBlob"] = sapkg.code.UncommonTrapBlob;
-} catch(e) {
-  // Ignore exception. C2 specific objects might be not 
-  // available in client VM
-}
-
-
 // This is *not* exhaustive. Add more if needed.
 // code blobs
 vmType2Class["BufferBlob"] = sapkg.code.BufferBlob;
@@ -826,8 +812,10 @@
 vmType2Class["SafepointBlob"] = sapkg.code.SafepointBlob;
 vmType2Class["C2IAdapter"] = sapkg.code.C2IAdapter;
 vmType2Class["DeoptimizationBlob"] = sapkg.code.DeoptimizationBlob;
+vmType2Class["ExceptionBlob"] = sapkg.code.ExceptionBlob;
 vmType2Class["I2CAdapter"] = sapkg.code.I2CAdapter;
 vmType2Class["OSRAdapter"] = sapkg.code.OSRAdapter;
+vmType2Class["UncommonTrapBlob"] = sapkg.code.UncommonTrapBlob;
 vmType2Class["PCDesc"] = sapkg.code.PCDesc;
 
 // interpreter
@@ -888,29 +876,21 @@
 
 // returns description of given pointer as a String
 function whatis(addr) {
-  addr = any2addr(addr);
-  var ptrLoc = findPtr(addr);
-  if (!ptrLoc.isUnknown()) {
-    return ptrLoc.toString();
-  }
-
-  var vmType = vmTypeof(addr);
-  if (vmType != null) {
-    return "pointer to " + vmType.name;
-  }
-
-  var dso = loadObjectContainingPC(addr);
-  if (dso == null) {
-    return ptrLoc.toString();
-  }
-
-  var sym = dso.closestSymbolToPC(addr);
-  if (sym != null) {
-    return sym.name + '+' + sym.offset;
-  }
-
-  var s = dso.getName();
-  var p = s.lastIndexOf("/");
-  var base = dso.getBase();
-  return s.substring(p+1, s.length) + '+' + addr.minus(base);
+   addr = any2addr(addr);
+   var ptrLoc = findPtr(addr);
+   if (ptrLoc.isUnknown()) {
+      var vmType = vmTypeof(addr);
+      if (vmType != null) {
+         return "pointer to " + vmType.name;
+      } else {
+         var sym = closestSymbolFor(addr);
+         if (sym != null) {
+            return sym.name + '+' + sym.offset;
+         } else {
+            return ptrLoc.toString();
+         }
+      }
+   } else {
+      return ptrLoc.toString();
+   }
 }