Browse Source

add log 5

DevYK 3 years ago
parent
commit
0a94235df6
3 changed files with 81 additions and 81 deletions
  1. 80 0
      jni/ImageBlurDetection.cpp
  2. 0 80
      src/utils/video_similarity.cpp
  3. 1 1
      src/video_similarity_comparison.cpp

+ 80 - 0
jni/ImageBlurDetection.cpp

@@ -3,8 +3,86 @@
 //
 
 #include "ImageBlurDetection.h"
+#include <sys/stat.h>
+#include <signal.h>
+#include <execinfo.h>
 
 
+const int MAX_STACK_FRAMES = 128;
+
+void sig_crash(int sig) {
+    printf("crash---->sig=%d \n", sig);
+    FILE *fd;
+    struct stat buf;
+    const char *crash_path = "./video_similarity_comparison_crash.txt";
+    stat(crash_path, &buf);
+    if (buf.st_size > 10 * 1000 * 1000) { // 超过10兆则清空内容
+        fd = fopen(crash_path, "w");
+    } else {
+        fd = fopen(crash_path, "at");
+    }
+
+    if (NULL == fd) {
+        exit(0);
+    }
+    try {
+        char szLine[512] = {0,};
+        time_t t = time(NULL);
+        tm *now = localtime(&t);
+        int nLen1 = sprintf(szLine,
+                            "#########################################################\n[%04d-%02d-%02d %02d:%02d:%02d][crash signal number:%d]\n",
+                            now->tm_year + 1900,
+                            now->tm_mon + 1,
+                            now->tm_mday,
+                            now->tm_hour,
+                            now->tm_min,
+                            now->tm_sec,
+                            sig);
+        printf("crash---->%s \n", szLine);
+        fwrite(szLine, 1, strlen(szLine), fd);
+#ifdef __linux
+        void* array[MAX_STACK_FRAMES];
+        size_t size = 0;
+        char** strings = NULL;
+        size_t i, j;
+        signal(sig, SIG_DFL);
+        size = backtrace(array, MAX_STACK_FRAMES);
+        strings = (char**)backtrace_symbols(array, size);
+        //fprintf(stderr, "oncrash;\n");
+        for (i = 0; i < size; ++i)
+        {
+            char szLine[512] = {0, };
+            sprintf(szLine, "%d %s\n", i, strings[i]);
+            fwrite(szLine, 1, strlen(szLine), fd);
+            std::string symbol(strings[i]);
+            size_t pos1 = symbol.find_first_of("[");
+            size_t pos2 = symbol.find_last_of("]");
+            std::string address = symbol.substr(pos1 + 1, pos2 - pos1 -1);
+            char cmd[128] = {0, };
+            sprintf(cmd, "addr2line -e /home/libpiaoquan_java_opencv.so %s", address.c_str()); // test为应用程序名称,需要改为用户自己的应用程序名
+            FILE *fPipe = popen(cmd, "r");
+            if(fPipe != NULL){
+                char buff[1024];
+                memset(buff, 0, sizeof(buff));
+                char* ret = fgets(buff, sizeof(buff), fPipe);
+                pclose(fPipe);
+                fwrite(ret, 1, strlen(ret), fd);
+            }
+        }
+       free(strings);
+#endif // __linux
+    } catch (...) {
+        //
+    }
+    printf("sig_crash fflush  \n");
+    fflush(fd);
+    printf("sig_crash fclose  \n");
+    fclose(fd);
+    fd = NULL;
+    printf("sig_crash exit  \n");
+    exit(0);
+}
+
 static jint Java_JNI_OpenCV_ImagePathBlurDetection(JNIEnv *env, jobject obj, jstring filepath) {
     const char *image_path = env->GetStringUTFChars(filepath, 0);
     int ret = image_blur_detection(image_path);
@@ -63,6 +141,8 @@ int JNI_OnLoad(JavaVM *vm, void *pVoid) {
         printf(" JNI_OnLoad  error.\n");
         return JNI_ERR;
     }
+    signal(SIGABRT, sig_crash);
+    signal(SIGSEGV, sig_crash);
     printf(" JNI_OnLoad  ok.\n");
     return JNI_VERSION_1_6;
 };

+ 0 - 80
src/utils/video_similarity.cpp

@@ -4,87 +4,9 @@
 
 #include <json/reader.h>
 #include <json/writer.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <execinfo.h>
 #include "video_similarity.h"
 
 
-const int MAX_STACK_FRAMES = 128;
-
-void sig_crash(int sig) {
-    printf("crash---->sig=%d \n", sig);
-    FILE *fd;
-    struct stat buf;
-    const char *crash_path = "./video_similarity_comparison_crash.txt";
-    stat(crash_path, &buf);
-    if (buf.st_size > 10 * 1000 * 1000) { // 超过10兆则清空内容
-        fd = fopen(crash_path, "w");
-    } else {
-        fd = fopen(crash_path, "at");
-    }
-
-    if (NULL == fd) {
-        exit(0);
-    }
-    try {
-        char szLine[512] = {0,};
-        time_t t = time(NULL);
-        tm *now = localtime(&t);
-        int nLen1 = sprintf(szLine,
-                            "#########################################################\n[%04d-%02d-%02d %02d:%02d:%02d][crash signal number:%d]\n",
-                            now->tm_year + 1900,
-                            now->tm_mon + 1,
-                            now->tm_mday,
-                            now->tm_hour,
-                            now->tm_min,
-                            now->tm_sec,
-                            sig);
-        printf("crash---->%s \n", szLine);
-        fwrite(szLine, 1, strlen(szLine), fd);
-#ifdef __linux
-        void* array[MAX_STACK_FRAMES];
-        size_t size = 0;
-        char** strings = NULL;
-        size_t i, j;
-        signal(sig, SIG_DFL);
-        size = backtrace(array, MAX_STACK_FRAMES);
-        strings = (char**)backtrace_symbols(array, size);
-        //fprintf(stderr, "oncrash;\n");
-        for (i = 0; i < size; ++i)
-        {
-            char szLine[512] = {0, };
-            sprintf(szLine, "%d %s\n", i, strings[i]);
-            fwrite(szLine, 1, strlen(szLine), fd);
-            std::string symbol(strings[i]);
-            size_t pos1 = symbol.find_first_of("[");
-            size_t pos2 = symbol.find_last_of("]");
-            std::string address = symbol.substr(pos1 + 1, pos2 - pos1 -1);
-            char cmd[128] = {0, };
-            sprintf(cmd, "addr2line -e /home/libpiaoquan_java_opencv.so %s", address.c_str()); // test为应用程序名称,需要改为用户自己的应用程序名
-            FILE *fPipe = popen(cmd, "r");
-            if(fPipe != NULL){
-                char buff[1024];
-                memset(buff, 0, sizeof(buff));
-                char* ret = fgets(buff, sizeof(buff), fPipe);
-                pclose(fPipe);
-                fwrite(ret, 1, strlen(ret), fd);
-            }
-        }
-       free(strings);
-#endif // __linux
-    } catch (...) {
-        //
-    }
-    printf("sig_crash fflush  \n");
-    fflush(fd);
-    printf("sig_crash fclose  \n");
-    fclose(fd);
-    fd = NULL;
-    exit(0);
-    printf("sig_crash exit  \n");
-}
-
 long video_similarity_detection_init(const char *url, VideoSimilarity **vs) {
     auto *ctx = (VideoSimilarityContext *) malloc(sizeof(VideoSimilarityContext));
     if (!ctx)return -1;
@@ -290,8 +212,6 @@ const char *videoSimilarity2json(VideoSimilarity *videoSimilarity) {
  * @return
  */
 const char *get_video_similarity_list(const char *inputjson) {
-    signal(SIGABRT, sig_crash);
-    signal(SIGSEGV, sig_crash);
     if (!inputjson)return NULL;
     printf("get_video_similarity_list=%s \n", inputjson);
     VideoSimilarity *vs = NULL;

+ 1 - 1
src/video_similarity_comparison.cpp

@@ -83,7 +83,7 @@ int main(int argc, char *argv[]) {
     int threads = 1;
     const char *inputs[1];
 //    inputs[0] =  "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/b46fd76f98364b3abad8c1297a868f82-1526976612340.m3u8\",\"clips\":[{\"startTimeMs\":3000,\"endTimeMs\":4000},{\"startTimeMs\":6000,\"endTimeMs\":7000},{\"startTimeMs\":9000,\"endTimeMs\":10000},{\"startTimeMs\":12000,\"endTimeMs\":13000},{\"startTimeMs\":15000,\"endTimeMs\":16000},{\"startTimeMs\":18000,\"endTimeMs\":19000},{\"startTimeMs\":21000,\"endTimeMs\":22000},{\"startTimeMs\":24000,\"endTimeMs\":25000}]}";
-    inputs[0] = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/e6b5cfa854b24e3f87d133e3b2da0ade1530635451140-randomKgqMSnitde.mp4\",\"clips\":[{\"startTimeMs\":14000,\"endTimeMs\":15000},{\"startTimeMs\":28000,\"endTimeMs\":29000},{\"startTimeMs\":42000,\"endTimeMs\":43000},{\"startTimeMs\":56000,\"endTimeMs\":57000},{\"startTimeMs\":70000,\"endTimeMs\":71000},{\"startTimeMs\":84000,\"endTimeMs\":85000},{\"startTimeMs\":98000,\"endTimeMs\":99000},{\"startTimeMs\":112000,\"endTimeMs\":113000}]}";
+    inputs[0] = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/9aae21301df54dcab9e57c50494302741530678399256.m3u8\",\"clips\":[{\"startTimeMs\":3200,\"endTimeMs\":4200},{\"startTimeMs\":6400,\"endTimeMs\":7400},{\"startTimeMs\":9600,\"endTimeMs\":10600},{\"startTimeMs\":12800,\"endTimeMs\":13800},{\"startTimeMs\":16000,\"endTimeMs\":17000},{\"startTimeMs\":19200,\"endTimeMs\":20200},{\"startTimeMs\":22400,\"endTimeMs\":23400},{\"startTimeMs\":25600,\"endTimeMs\":26600}]}";
 //    inputs[2] = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/3dbf36e8ec27479581514b8b7b4c8034-1526924772832-safe1594892815.m3u8\",\"clips\":[{\"startTimeMs\":6000,\"endTimeMs\":7000},{\"startTimeMs\":12000,\"endTimeMs\":13000},{\"startTimeMs\":18000,\"endTimeMs\":19000},{\"startTimeMs\":24000,\"endTimeMs\":25000},{\"startTimeMs\":30000,\"endTimeMs\":31000},{\"startTimeMs\":36000,\"endTimeMs\":37000},{\"startTimeMs\":42000,\"endTimeMs\":43000},{\"startTimeMs\":48000,\"endTimeMs\":49000}]}";
 //    inputs[3] = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/3dbf36e8ec27479581514b8b7b4c8034-1526924772832-safe1594892815.m3u8\",\"clips\":[{\"startTimeMs\":6000,\"endTimeMs\":7000},{\"startTimeMs\":12000,\"endTimeMs\":13000},{\"startTimeMs\":18000,\"endTimeMs\":19000},{\"startTimeMs\":24000,\"endTimeMs\":25000},{\"startTimeMs\":30000,\"endTimeMs\":31000},{\"startTimeMs\":36000,\"endTimeMs\":37000},{\"startTimeMs\":42000,\"endTimeMs\":43000},{\"startTimeMs\":48000,\"endTimeMs\":49000}]}";