-
Notifications
You must be signed in to change notification settings - Fork 245
Open
Description
SchemeEval run smoothly on x64 and i386 but it crashes on armv7-a.
Steps to reproduce bug
-
Download datomspace-tester.apk
-
Install datomspace-tester.apk (Do not run!)
-
Go to Settings -> Apps -> dAtomSpace Tester. Set Storage permission.
-
Run dAtomSpace Tester
-
App runs about 30 seconds, then it crashes. There is tombstone file.
-
View results in datomspace-test.txt file in Download folder
Source codes
SchemeEval.java
...
package com.cogroid.atomspace;
public class SchemeEval extends GenericEval {
...
public SchemeEval(AtomSpace as) {
super();
jni_ptr = jni_init(as.jni_ptr);
}
private native long jni_init(long as_jni_ptr);
// Call before first use.
public static void init_scheme() {
jni_init_scheme();
}
private static native void jni_init_scheme();
...
com_cogroid_atomspace_SchemeEval.h
...
JNIEXPORT jlong JNICALL Java_com_cogroid_atomspace_SchemeEval_jni_1init
(JNIEnv *, jobject, jlong);
...
JNIEXPORT void JNICALL Java_com_cogroid_atomspace_SchemeEval_jni_1init_1scheme
(JNIEnv *, jclass);
...
com_cogroid_atomspace_SchemeEval.cc
...
JNIEXPORT jlong JNICALL Java_com_cogroid_atomspace_SchemeEval_jni_1init
(JNIEnv *env, jobject thisObj, jlong as_jni_ptr) {
opencog::AtomSpace *asp = NULL;
if (as_jni_ptr != 0) {
cogroid::SPW<opencog::AtomSpace> *spw_asp = cogroid::SPW<opencog::AtomSpace>::get(as_jni_ptr);
asp = spw_asp->get();
}
cogroid::SPW<opencog::SchemeEval> *spw_se = new cogroid::SPW<opencog::SchemeEval>(asp);
return spw_se->instance();
}
...
JNIEXPORT void JNICALL Java_com_cogroid_atomspace_SchemeEval_jni_1init_1scheme
(JNIEnv *env, jclass clz) {
opencog::SchemeEval::init_scheme();
}
...
Tester.java
...
public void testSchemeEval() {
try {
String log = "\n===== SchemeEval =====\n";
writeLog(log);
try {
SchemeEval.init_scheme();
} catch (Throwable e) {
writeLog(Loader.me().stackTrace(e));
}
AtomSpace pv = new AtomSpace();
SchemeEval se = new SchemeEval(pv);
String tmpFolder = new java.io.File(_logFile).getParentFile().getAbsolutePath();
extractScmFiles();
java.util.List<String> files = scmFiles();
for (int i = 0; i < files.size(); i++) {
String fn = files.get(i);
String text = readTextFile(fn, tmpFolder);
try {
writeLog("----- Eval: " + fn + " -----");
String rs = "";
se.begin_eval();
writeLog("begin_eval();");
se.eval_expr(text);
writeLog("eval_expr();");
rs = se.poll_result();
writeLog("poll_result();");
//String rs = se.eval(text);
writeLog(rs);
} catch (Throwable e) {
writeLog(Loader.me().stackTrace(e));
}
}
} catch (Throwable e) {
writeLog(Loader.me().stackTrace(e));
}
}
...
Metadata
Metadata
Assignees
Labels
No labels