summaryrefslogtreecommitdiffstats
path: root/vm/Init.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/Init.c')
-rw-r--r--vm/Init.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/vm/Init.c b/vm/Init.c
index e29687d44..d73bec789 100644
--- a/vm/Init.c
+++ b/vm/Init.c
@@ -111,6 +111,9 @@ static void dvmUsage(const char* progName)
dvmFprintf(stderr,
" -Xjnigreflimit:N (must be multiple of 100, >= 200)\n");
dvmFprintf(stderr, " -Xjniopts:{warnonly,forcecopy}\n");
+#if defined(WITH_JNI_TRACE)
+ dvmFprintf(stderr, " -Xjnitrace:substring (eg NativeClass or nativeMethod)\n");
+#endif
dvmFprintf(stderr, " -Xdeadlockpredict:{off,warn,err,abort}\n");
dvmFprintf(stderr, " -Xstacktracefile:<filename>\n");
dvmFprintf(stderr, " -Xgc:[no]precise\n");
@@ -118,6 +121,7 @@ static void dvmUsage(const char* progName)
dvmFprintf(stderr, " -Xgc:[no]preverify\n");
dvmFprintf(stderr, " -Xgc:[no]postverify\n");
dvmFprintf(stderr, " -Xgc:[no]concurrent\n");
+ dvmFprintf(stderr, " -Xgc:[no]verifycardtable\n");
dvmFprintf(stderr, " -Xgenregmap\n");
dvmFprintf(stderr, " -Xcheckdexsum\n");
#if defined(WITH_JIT)
@@ -175,6 +179,9 @@ static void dvmUsage(const char* progName)
#ifdef WITH_JNI_STACK_CHECK
" jni_stack_check"
#endif
+#ifdef WITH_JNI_TRACE
+ " jni_trace"
+#endif
#ifdef EASY_GDB
" easy_gdb"
#endif
@@ -885,6 +892,11 @@ static int dvmProcessOptions(int argc, const char* const argv[],
}
gDvm.jniGrefLimit = lim;
+#if defined(WITH_JNI_TRACE)
+ } else if (strncmp(argv[i], "-Xjnitrace:", 11) == 0) {
+ gDvm.jniTrace = strdup(argv[i] + 11);
+#endif
+
} else if (strcmp(argv[i], "-Xlog-stdio") == 0) {
gDvm.logStdio = true;
@@ -988,6 +1000,10 @@ static int dvmProcessOptions(int argc, const char* const argv[],
gDvm.concurrentMarkSweep = true;
else if (strcmp(argv[i] + 5, "noconcurrent") == 0)
gDvm.concurrentMarkSweep = false;
+ else if (strcmp(argv[i] + 5, "verifycardtable") == 0)
+ gDvm.verifyCardTable = true;
+ else if (strcmp(argv[i] + 5, "noverifycardtable") == 0)
+ gDvm.verifyCardTable = false;
else {
dvmFprintf(stderr, "Bad value for -Xgc");
return -1;
@@ -1040,6 +1056,8 @@ static void setCommandLineDefaults()
gDvm.heapSizeMax = 16 * 1024 * 1024; // Spec says 75% physical mem
gDvm.stackSize = kDefaultStackSize;
+ gDvm.concurrentMarkSweep = true;
+
/* gDvm.jdwpSuspend = true; */
/* allowed unless zygote config doesn't allow it */
@@ -1602,6 +1620,8 @@ void dvmShutdown(void)
dvmJdwpShutdown(gDvm.jdwpState);
free(gDvm.jdwpHost);
gDvm.jdwpHost = NULL;
+ free(gDvm.jniTrace);
+ gDvm.jniTrace = NULL;
free(gDvm.stackTraceFile);
gDvm.stackTraceFile = NULL;