Mercurial > hg > truffle
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(); + } }