MCPcopy Create free account
hub / github.com/Snapchat/Valdi / dumpLogs

Method dumpLogs

valdi/src/valdi/android/NativeBridge.cpp:1926–1957  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1924}
1925
1926jstring ValdiAndroid::NativeBridge::dumpLogs( // NOLINT
1927 fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT
1928 jlong runtimeHandle) {
1929 auto* runtime = getRuntime(runtimeHandle);
1930 if (runtime == nullptr) {
1931 return nullptr;
1932 }
1933
1934 auto javaEnv = ValdiAndroid::JavaEnv();
1935 auto logs = runtime->dumpLogs(false, true, false);
1936
1937 auto stats = IndirectJavaGlobalRef::dumpStats();
1938
1939 Valdi::ValueArrayBuilder builder;
1940 builder.reserve(stats.activeReferencesByTag.size());
1941
1942 for (const auto& it : stats.activeReferencesByTag) {
1943 auto tag = it.first == nullptr ? std::string_view("<null>") : std::string_view(it.first);
1944 builder.append(Valdi::Value(STRING_FORMAT("{} = {}", tag, it.second)));
1945 }
1946
1947 logs.appendVerbose(
1948 STRING_LITERAL("JNI Global Refs"),
1949 Valdi::Value()
1950 .setMapValue("tableSize", Valdi::Value(static_cast<int32_t>(stats.tableSize)))
1951 .setMapValue("activeReferencesCount", Valdi::Value(static_cast<int32_t>(stats.activeReferencesCount)))
1952 .setMapValue("references", Valdi::Value(builder.build())));
1953
1954 auto verboseLogs = logs.verboseLogsToString();
1955
1956 return reinterpret_cast<jstring>(ValdiAndroid::toJavaObject(javaEnv, verboseLogs).releaseObject());
1957}
1958
1959jobject ValdiAndroid::NativeBridge::getAllContexts( // NOLINT
1960 fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT

Callers 1

dumpLogMetadataMethod · 0.45

Calls 11

getRuntimeFunction · 0.85
toJavaObjectFunction · 0.85
appendVerboseMethod · 0.80
verboseLogsToStringMethod · 0.80
appendMethod · 0.65
releaseObjectMethod · 0.65
JavaEnvClass · 0.50
ValueClass · 0.50
reserveMethod · 0.45
sizeMethod · 0.45
buildMethod · 0.45

Tested by

no test coverage detected