Skip to content

Commit f462435

Browse files
committed
GH-437 logical value for LLVMFunctionStartNode, LLVMForeignFunctionCallNode and subclasses of MethodDescriptorRoot added
1 parent a49c9a3 commit f462435

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/details/TruffleDetailsProvider.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ public class TruffleDetailsProvider extends DetailsProvider.Basic {
6060
private static final String TSTRING_MASK = "com.oracle.truffle.api.strings.AbstractTruffleString+"; // NOI18N
6161
private static final String TS_LONG_MASK = "com.oracle.truffle.api.strings.AbstractTruffleString$LazyLong"; // NOI18N
6262
private static final String TS_CONCAT_MASK = "com.oracle.truffle.api.strings.AbstractTruffleString$LazyConcat"; // NOI18N
63-
63+
private static final String LLVM_NODE_MASK = "com.oracle.truffle.llvm.runtime.nodes.func.LLVMFunctionStartNode"; // NOI18N
64+
private static final String LLVM_FOREIGN_NODE_MASK = "com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode"; // NOI18N
6465
private static final String TS_ENCODING_CLASS = "com.oracle.truffle.api.strings.TruffleString$Encoding"; // NOI18N
6566
private static final Object CACHE_LOCK = new Object();
6667
private static WeakHashMap<Heap,Map<Byte,Encoding>> CACHE;
@@ -69,7 +70,8 @@ public TruffleDetailsProvider() {
6970
super(DEFAULT_CALL_TARGET_MASK, OPTIMIZED_CALL_TARGET_MASK, OPTIMIZED_CALL_TARGET1_MASK,
7071
ENT_OPTIMIZED_CALL_TARGET_MASK, LANG_INFO_MASK, LANG_CACHE_MASK,
7172
LANG_CACHE1_MASK, POLYGLOT_MASK, INSTRUMENT_INFO_MASK, NATIVE_ROOT_MASK,
72-
NODE_MASK, TSTRING_MASK, TS_LONG_MASK, TS_CONCAT_MASK);
73+
NODE_MASK, TSTRING_MASK, TS_LONG_MASK, TS_CONCAT_MASK, LLVM_NODE_MASK,
74+
LLVM_FOREIGN_NODE_MASK);
7375
}
7476

7577
public String getDetailsString(String className, Instance instance) {
@@ -186,6 +188,19 @@ public String getDetailsString(String className, Instance instance) {
186188
}
187189
return value;
188190
}
191+
if (LLVM_NODE_MASK.equals(className)) {
192+
String name = DetailsUtils.getInstanceFieldString(instance, "originalName"); // NOI18N
193+
if (name == null) name = DetailsUtils.getInstanceFieldString(instance, "name"); // NOI18N
194+
return name;
195+
}
196+
if (LLVM_FOREIGN_NODE_MASK.equals(className)) {
197+
Instance classNode = (Instance) instance.getValueOfField("callNode"); // NOI18N
198+
199+
if (classNode != null) {
200+
String value = DetailsUtils.getInstanceFieldString(classNode, "callTarget"); // NOI18N
201+
if (value != null) return "LLVM: "+value; // NOI18N
202+
}
203+
}
189204
return null;
190205
}
191206

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/python/PythonDetailsProvider.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public class PythonDetailsProvider extends DetailsProvider.Basic {
7575
private static final String PGFROOT_MASK = "com.oracle.graal.python.nodes.generator.GeneratorFunctionRootNode"; // NOI18N
7676
private static final String PTFROOT_MASK = "com.oracle.graal.python.nodes.control.TopLevelExceptionHandler"; // NOI18N
7777
private static final String DICT_KEY_MASK = "com.oracle.graal.python.builtins.objects.common.EconomicMapStorage$DictKey"; // NOI18N
78+
private static final String METHOD_NODE_MASK = "com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes$MethodDescriptorRoot+"; //NOI18N
7879

7980
public PythonDetailsProvider() {
8081
super(PCLASS_MASK,PMANAGEDCLASS_MASK,PFUNCTION_MASK,PNONE_MASK,PLIST_MASK,
@@ -84,7 +85,7 @@ public PythonDetailsProvider() {
8485
PMETHOD_MASK, PDECORATEDMETHOD_MASK, PCELL_MASK, BYTE_STORAGE_MASK,
8586
GETSET_DESCRIPTOR_MASK,PBUILTIN_CLASSTYPE_MASK, PLAZY_STRING_MASK,
8687
PRANGE_MASK, PSOCKET_MASK, PFROOT_MASK, PBFROOT_MASK, PMFROOT_MASK,
87-
PGFROOT_MASK, PTFROOT_MASK, DICT_KEY_MASK);
88+
PGFROOT_MASK, PTFROOT_MASK, DICT_KEY_MASK, METHOD_NODE_MASK);
8889
}
8990

9091
public String getDetailsString(String className, Instance instance) {
@@ -280,6 +281,9 @@ public String getDetailsString(String className, Instance instance) {
280281
if (DICT_KEY_MASK.equals(className)) {
281282
return DetailsUtils.getInstanceFieldString(instance, "value"); // NOI18N
282283
}
284+
if (METHOD_NODE_MASK.equals(className)) {
285+
return DetailsUtils.getInstanceFieldString(instance, "name"); // NOI18N
286+
}
283287
return null;
284288
}
285289

0 commit comments

Comments
 (0)