[Title] Redirect stdout, stderr to emulator.log
authorsyeon.hwang <syeon.hwang@samsung.com>
Thu, 15 Mar 2012 12:33:47 +0000 (21:33 +0900)
committersyeon.hwang <syeon.hwang@samsung.com>
Thu, 15 Mar 2012 12:33:47 +0000 (21:33 +0900)
[Type]
[Module] Emulator/
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

tizen/src/emulator.c

index 19c1b53b0651aaaa1208de454b7ab575ab3bc93c..55d73c707cb836980b1173583fbbb2dea8711a5d 100644 (file)
@@ -160,11 +160,57 @@ void get_tizen_port(char* option)
     INFO( "tizen_base_port: %d\n", tizen_base_port);
 }
 
+void redir_output(void)
+{
+       FILE *fp;
+// FIXME !!
+//     strcpy(logfile, get_virtual_target_log_path(startup_option.vtm));
+//     strcat(logfile, "/emulator.log");
+
+       fp = freopen("emulator.log", "a+", stdout);
+       if(fp ==NULL)
+               fprintf(stderr, "log file open error\n");
+       fp = freopen("emulator.log", "a+", stderr);
+       if(fp ==NULL)
+               fprintf(stderr, "log file open error\n");
+
+       setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
+       setvbuf(stderr, NULL, _IOLBF, BUFSIZ);
+}
+
+void extract_info(int qemu_argc, char** qemu_argv)
+{
+    int i;
+    char *option = NULL;
+
+    for(i = 0; i < qemu_argc; ++i)
+    {
+        if(strstr(qemu_argv[i], IMAGE_PATH_PREFIX) != NULL) {
+            get_image_path(qemu_argv[i]);
+        }
+        if((option = strstr(qemu_argv[i], SDB_PORT_PREFIX)) != NULL) {
+            get_tizen_port(option);
+            write_portfile(tizen_target_path);
+        }
+
+    }
+}
 
 int qemu_main(int argc, char** argv, char** envp);
 
 int main(int argc, char* argv[])
 {
+    int skin_argc = 0;
+    char** skin_argv = NULL;
+
+    int qemu_argc = 0;
+    char** qemu_argv = NULL;
+    char proxy[MIDBUF] ={0}, dns1[MIDBUF] = {0}, dns2[MIDBUF] = {0};
+
+    INFO("Emulator start !!!\n");
+    // redir_output after debug_ch is initialized...
+    redir_output();
+
 #ifdef _WIN32
     WSADATA wsadata;
     if(WSAStartup(MAKEWORD(2,0), &wsadata) == SOCKET_ERROR) {
@@ -172,59 +218,29 @@ int main(int argc, char* argv[])
         return NULL;
     }
 #endif
-
-    int skin_argc = 0;
-    char** skin_argv = NULL;
-
-    int qemu_argc = 0;
-    char** qemu_argv = NULL;
-
+       
     parse_options(argc, argv, &skin_argc, &skin_argv, &qemu_argc, &qemu_argv);
+    extract_info(qemu_argc, qemu_argv);
 
     int i;
 
-/*
-    printf("%d\n", skin_argc);
-    for(i = 0; i < skin_argc; ++i)
-    {
-        printf("%s\n", skin_argv[i]);
-    }
-*/
-
-//  printf("%d\n", qemu_argc);
     char *option = NULL;
 
-    INFO("qemu args : =====================================\n");
+    fprintf(stdout, "qemu args : ==========================================\n");
     for(i = 0; i < qemu_argc; ++i)
     {
-        INFO("%s ", qemu_argv[i]);
-        if(strstr(qemu_argv[i], IMAGE_PATH_PREFIX) != NULL) {
-            get_image_path(qemu_argv[i]);
-        }
-        if((option = strstr(qemu_argv[i], SDB_PORT_PREFIX)) != NULL) {
-            get_tizen_port(option);
-            write_portfile(tizen_target_path);
-        }
-
+        fprintf(stdout, "%s ", qemu_argv[i]);
     }
+    fprintf(stdout, "\n");
+    fprintf(stdout, "======================================================\n");
 
-    INFO("\n");
-    //INFO("======================================================\n");
-
-    INFO("skin args : =====================================\n");
+    fprintf(stdout, "skin args : ==========================================\n");
     for(i = 0; i < skin_argc; ++i)
     {
-        INFO("%s ", skin_argv[i]);
-        if(strstr(skin_argv[i], IMAGE_PATH_PREFIX) != NULL) {
-            get_image_path(skin_argv[i]);
-        }
-        if((option = strstr(skin_argv[i], SDB_PORT_PREFIX)) != NULL) {
-            get_tizen_port(option);
-        }
-
+        fprintf(stdout, "%s ", skin_argv[i]);
     }
-    INFO("\n");
-    INFO("======================================================\n");
+    fprintf(stdout, "\n");
+    fprintf(stdout, "======================================================\n");
 
     sdb_setup();