Skip to content

Commit 888f9ba

Browse files
committed
logging method for methods
1 parent 7af5ceb commit 888f9ba

3 files changed

Lines changed: 27 additions & 1 deletion

File tree

src/methodCallBaton.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ void NewInstanceBaton::execute(JNIEnv *env) {
8383
jclass constructorClazz = env->FindClass("java/lang/reflect/Constructor");
8484
jmethodID constructor_newInstance = env->GetMethodID(constructorClazz, "newInstance", "([Ljava/lang/Object;)Ljava/lang/Object;");
8585

86-
//printf("invoke: %s\n", javaObjectToString(env, m_method).c_str());
86+
//printf("invoke: %s\n", javaMethodCallToString(env, m_method, constructor_newInstance, m_args).c_str());
8787

8888
jobject result = env->CallObjectMethod(m_method, constructor_newInstance, m_args);
8989
jthrowable err = env->ExceptionOccurred();

src/utils.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,31 @@ std::string javaObjectToString(JNIEnv *env, jobject obj) {
6565
return javaToString(env, result);
6666
}
6767

68+
std::string javaMethodCallToString(JNIEnv *env, jobject obj, jmethodID methodId, jarray args) {
69+
char temp[100];
70+
71+
std::ostringstream result;
72+
sprintf(temp, "0x%08X", (int)env);
73+
result << temp;
74+
result << ": ";
75+
result << javaObjectToString(env, obj);
76+
result << ": ";
77+
sprintf(temp, "0x%08X", (int)methodId);
78+
result << temp;
79+
result << ": (";
80+
jsize arraySize = env->GetArrayLength(args);
81+
for(int i=0; i<arraySize; i++) {
82+
if(i != 0) {
83+
result << ", ";
84+
}
85+
jobject arg = env->GetObjectArrayElement((jobjectArray)args, i);
86+
result << javaObjectToString(env, arg);
87+
}
88+
result << ")";
89+
90+
return result.str();
91+
}
92+
6893
JNIEnv* javaAttachCurrentThread(JavaVM* jvm) {
6994
JNIEnv* env;
7095
JavaVMAttachArgs attachArgs;

src/utils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ void javaReflectionGetMethods(JNIEnv *env, jclass clazz, std::list<jobject>* met
4949
void javaReflectionGetFields(JNIEnv *env, jclass clazz, std::list<jobject>* fields);
5050
std::string javaToString(JNIEnv *env, jstring str);
5151
std::string javaObjectToString(JNIEnv *env, jobject obj);
52+
std::string javaMethodCallToString(JNIEnv *env, jobject obj, jmethodID methodId, jarray args);
5253
JNIEnv* javaAttachCurrentThread(JavaVM* jvm);
5354
void javaDetachCurrentThread(JavaVM* jvm);
5455
jvalueType javaGetType(JNIEnv *env, jclass type);

0 commit comments

Comments
 (0)