pthread_kill(gDvm.signalCatcherHandle, SIGQUIT);
pthread_join(gDvm.signalCatcherHandle, NULL);
- LOGV("signal catcher has shut down");
+ ALOGV("signal catcher has shut down");
}
ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
printProcessName(&target);
dvmPrintDebugMessage(&target, "\n");
+ dvmDumpJniStats(&target);
dvmDumpAllThreadsEx(&target, true);
fprintf(fp, "----- end %d -----\n", pid);
}
/* just dump to log */
DebugOutputTarget target;
dvmCreateLogOutputTarget(&target, ANDROID_LOG_INFO, LOG_TAG);
+ dvmDumpJniStats(&target);
dvmDumpAllThreadsEx(&target, true);
} else {
/* write to memory buffer */
FILE* memfp = open_memstream(&traceBuf, &traceLen);
if (memfp == NULL) {
- LOGE("Unable to create memstream for stack traces");
+ ALOGE("Unable to create memstream for stack traces");
traceBuf = NULL; /* make sure it didn't touch this */
/* continue on */
} else {
*/
int fd = open(gDvm.stackTraceFile, O_WRONLY | O_APPEND | O_CREAT, 0666);
if (fd < 0) {
- LOGE("Unable to open stack trace file '%s': %s",
+ ALOGE("Unable to open stack trace file '%s': %s",
gDvm.stackTraceFile, strerror(errno));
} else {
- ssize_t actual = write(fd, traceBuf, traceLen);
+ ssize_t actual = TEMP_FAILURE_RETRY(write(fd, traceBuf, traceLen));
if (actual != (ssize_t) traceLen) {
- LOGE("Failed to write stack traces to %s (%d of %zd): %s",
+ ALOGE("Failed to write stack traces to %s (%d of %zd): %s",
gDvm.stackTraceFile, (int) actual, traceLen,
strerror(errno));
} else {
- LOGI("Wrote stack traces to '%s'", gDvm.stackTraceFile);
+ ALOGI("Wrote stack traces to '%s'", gDvm.stackTraceFile);
}
close(fd);
}
*/
static void handleSigUsr1()
{
- LOGI("SIGUSR1 forcing GC (no HPROF)");
+ ALOGI("SIGUSR1 forcing GC (no HPROF)");
dvmCollectGarbage();
}
void printAllClass(void *ptr)
{
ClassObject **classPP = (ClassObject **) ptr;
- LOGE("class %s", (*classPP)->descriptor);
+ ALOGE("class %s", (*classPP)->descriptor);
}
dvmCompilerDumpStats();
/* Stress-test unchain all */
dvmJitUnchainAll();
- LOGD("Send %d more signals to reset the code cache",
+ ALOGD("Send %d more signals to reset the code cache",
codeCacheResetCount & 7);
}
dvmCheckInterpStateConsistency();
UNUSED_PARAMETER(arg);
- LOGV("Signal catcher thread started (threadid=%d)", self->threadId);
+ ALOGV("Signal catcher thread started (threadid=%d)", self->threadId);
/* set up mask with signals we want to handle */
sigemptyset(&mask);
cc = sigwait(&mask, &rcvd);
if (cc != 0) {
if (cc == EINTR) {
- //LOGV("sigwait: EINTR");
+ //ALOGV("sigwait: EINTR");
goto loop;
}
assert(!"bad result from sigwait");
}
if (!gDvm.haltSignalCatcher) {
- LOGI("threadid=%d: reacting to signal %d",
+ ALOGI("threadid=%d: reacting to signal %d",
dvmThreadSelf()->threadId, rcvd);
}
break;
#endif
default:
- LOGE("unexpected signal %d", rcvd);
+ ALOGE("unexpected signal %d", rcvd);
break;
}
}