22 *
23 */
24
25 package sun.hotspot.code;
26
27 import sun.hotspot.WhiteBox;
28
29 public class CodeBlob {
30 private static final WhiteBox WB = WhiteBox.getWhiteBox();
31 public static CodeBlob[] getCodeBlobs(BlobType type) {
32 Object[] obj = WB.getCodeHeapEntries(type.id);
33 if (obj == null) {
34 return null;
35 }
36 CodeBlob[] result = new CodeBlob[obj.length];
37 for (int i = 0, n = result.length; i < n; ++i) {
38 result[i] = new CodeBlob((Object[]) obj[i]);
39 }
40 return result;
41 }
42 protected CodeBlob(Object[] obj) {
43 assert obj.length == 3;
44 name = (String) obj[0];
45 size = (Integer) obj[1];
46 code_blob_type = BlobType.values()[(Integer) obj[2]];
47 assert code_blob_type.id == (Integer) obj[2];
48 }
49 public final String name;
50 public final int size;
51 public final BlobType code_blob_type;
52
53 @Override
54 public String toString() {
55 return "CodeBlob{"
56 + "name=" + name
57 + ", size=" + size
58 + ", code_blob_type=" + code_blob_type
59 + '}';
60 }
61 }
|
22 *
23 */
24
25 package sun.hotspot.code;
26
27 import sun.hotspot.WhiteBox;
28
29 public class CodeBlob {
30 private static final WhiteBox WB = WhiteBox.getWhiteBox();
31 public static CodeBlob[] getCodeBlobs(BlobType type) {
32 Object[] obj = WB.getCodeHeapEntries(type.id);
33 if (obj == null) {
34 return null;
35 }
36 CodeBlob[] result = new CodeBlob[obj.length];
37 for (int i = 0, n = result.length; i < n; ++i) {
38 result[i] = new CodeBlob((Object[]) obj[i]);
39 }
40 return result;
41 }
42 public static CodeBlob getCodeBlob(long addr) {
43 Object[] obj = WB.getCodeBlob(addr);
44 if (obj == null) {
45 return null;
46 }
47 return new CodeBlob(obj);
48 }
49 protected CodeBlob(Object[] obj) {
50 assert obj.length == 3;
51 name = (String) obj[0];
52 size = (Integer) obj[1];
53 code_blob_type = BlobType.values()[(Integer) obj[2]];
54 assert code_blob_type.id == (Integer) obj[2];
55 }
56 public final String name;
57 public final int size;
58 public final BlobType code_blob_type;
59
60 @Override
61 public String toString() {
62 return "CodeBlob{"
63 + "name=" + name
64 + ", size=" + size
65 + ", code_blob_type=" + code_blob_type
66 + '}';
67 }
68 }
|