diff options
Diffstat (limited to 'libhwc2.1/ExynosHWCDebug.cpp')
-rw-r--r-- | libhwc2.1/ExynosHWCDebug.cpp | 77 |
1 files changed, 12 insertions, 65 deletions
diff --git a/libhwc2.1/ExynosHWCDebug.cpp b/libhwc2.1/ExynosHWCDebug.cpp index bbf676c..dc42369 100644 --- a/libhwc2.1/ExynosHWCDebug.cpp +++ b/libhwc2.1/ExynosHWCDebug.cpp @@ -18,33 +18,13 @@ #include <sync/sync.h> #include "exynos_sync.h" -uint32_t mErrLogSize = 0; -uint32_t mFenceLogSize = 0; - -int32_t saveErrorLog(const String8 &errString, ExynosDisplay *display) -{ +int32_t saveErrorLog(const String8 &errString, ExynosDisplay *display) { + if (display == nullptr) return -1; int32_t ret = NO_ERROR; - if (mErrLogSize >= ERR_LOG_SIZE) - return -1; - FILE *pFile = NULL; - char filePath[128]; - sprintf(filePath, "%s/hwc_error_log.txt", ERROR_LOG_PATH0); - pFile = fopen(filePath, "a"); - if (pFile == NULL) { - ALOGE("Fail to open file %s/hwc_error_log.txt, error: %s", ERROR_LOG_PATH0, strerror(errno)); - sprintf(filePath, "%s/hwc_error_log.txt", ERROR_LOG_PATH1); - pFile = fopen(filePath, "a"); - } - if (pFile == NULL) { - ALOGE("Fail to open file %s/hwc_error_log.txt, error: %s", ERROR_LOG_PATH1, strerror(errno)); - return -errno; - } + auto &fileWriter = display->mErrLogFileWriter; - mErrLogSize = ftell(pFile); - if (mErrLogSize >= ERR_LOG_SIZE) { - if (pFile != NULL) - fclose(pFile); + if (!fileWriter.chooseOpenedFile()) { return -1; } @@ -52,47 +32,19 @@ int32_t saveErrorLog(const String8 &errString, ExynosDisplay *display) struct timeval tv; gettimeofday(&tv, NULL); - if (display != NULL) { - saveString.appendFormat("%s %s %" PRIu64 ": %s\n", getLocalTimeStr(tv).string(), - display->mDisplayName.string(), display->mErrorFrameCount, - errString.string()); - } else { - saveString.appendFormat("%s : %s\n", getLocalTimeStr(tv).string(), errString.string()); - } + saveString.appendFormat("%s errFrameNumber %" PRIu64 ": %s\n", getLocalTimeStr(tv).string(), + display->mErrorFrameCount, errString.string()); - if (pFile != NULL) { - fwrite(saveString.string(), 1, saveString.size(), pFile); - mErrLogSize = (uint32_t)ftell(pFile); - ret = mErrLogSize; - fclose(pFile); - } + fileWriter.write(saveString); + fileWriter.flush(); return ret; } int32_t saveFenceTrace(ExynosDisplay *display) { int32_t ret = NO_ERROR; + auto &fileWriter = display->mFenceFileWriter; - if (mFenceLogSize >= FENCE_ERR_LOG_SIZE) - return -1; - - FILE *pFile = NULL; - char filePath[128]; - sprintf(filePath, "%s/hwc_fence_state.txt", ERROR_LOG_PATH0); - pFile = fopen(filePath, "a"); - if (pFile == NULL) { - ALOGE("Fail to open file %s/hwc_fence_state.txt, error: %s", ERROR_LOG_PATH0, strerror(errno)); - sprintf(filePath, "%s/hwc_fence_state.txt", ERROR_LOG_PATH1); - pFile = fopen(filePath, "a"); - } - if (pFile == NULL) { - ALOGE("Fail to open file %s, error: %s", ERROR_LOG_PATH1, strerror(errno)); - return -errno; - } - - mFenceLogSize = ftell(pFile); - if (mFenceLogSize >= FENCE_ERR_LOG_SIZE) { - if (pFile != NULL) - fclose(pFile); + if (!fileWriter.chooseOpenedFile()) { return -1; } @@ -117,12 +69,7 @@ int32_t saveFenceTrace(ExynosDisplay *display) { } } - if (pFile != NULL) { - fwrite(saveString.string(), 1, saveString.size(), pFile); - mFenceLogSize = (uint32_t)ftell(pFile); - ret = mFenceLogSize; - fclose(pFile); - } - + fileWriter.write(saveString); + fileWriter.flush(); return ret; } |