emulator: added some logs & error popup
authorgiwoong.kim <giwoong.kim@samsung.com>
Wed, 24 Apr 2013 01:57:50 +0000 (10:57 +0900)
committergiwoong.kim <giwoong.kim@samsung.com>
Wed, 24 Apr 2013 06:03:12 +0000 (15:03 +0900)
added some logs & error popup

Change-Id: I800744f0b99f9e625d9db7d4bc4de9a8618d083a
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/emulator.c
tizen/src/maru_sdl.c
tizen/src/maru_shm.c
tizen/src/osutil-darwin.c
tizen/src/osutil-linux.c
tizen/src/skin/client/native_src/share.c
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java

index c44d999..63656c7 100644 (file)
@@ -326,6 +326,7 @@ static void print_system_info(void)
         SDL_Linked_Version()->minor,
         SDL_Linked_Version()->patch);
 #endif
+
     print_system_info_os();
 }
 
index 8775c69..b561c4a 100644 (file)
@@ -577,9 +577,9 @@ void maruskin_sdl_init(uint64 swt_handle,
 
 void maruskin_sdl_quit(void)
 {
+    INFO("maru sdl quit\n");
+
     /* remove multi-touch finger points */
-    get_emul_multi_touch_state()->multitouch_enable = 0;
-    clear_finger_slot();
     cleanup_multi_touch_state();
 
 #if 0
index 73fe3a3..961cf62 100644 (file)
@@ -131,7 +131,7 @@ void maruskin_shm_init(uint64 swt_handle,
     /* base + 2 = shared memory key */
     int mykey = get_emul_vm_base_port() + 2;
 
-    INFO("shared memory key: %d, vga ram_size : %d\n", mykey, shm_size);
+    INFO("shared memory key: %d, size: %d bytes\n", mykey, shm_size);
 
     /* make a shared framebuffer */
     skin_shmid = shmget((key_t)mykey, (size_t)shm_size, 0666 | IPC_CREAT);
@@ -141,31 +141,38 @@ void maruskin_shm_init(uint64 swt_handle,
 
         maru_register_exit_msg(MARU_EXIT_UNKNOWN,
             (char*) "Cannot launch this VM.\n"
-            "Shared memory is not enough.");
-        exit(0);
+            "Failed to get identifier of the shared memory segment.");
+        exit(1);
     }
 
     shared_memory = shmat(skin_shmid, (void*)0, 0);
     if (shared_memory == (void *)-1) {
         ERR("shmat failed\n");
         perror("maru_vga: ");
+
+        maru_register_exit_msg(MARU_EXIT_UNKNOWN,
+            (char*) "Cannot launch this VM.\n"
+            "Failed to attach the shared memory segment.");
         exit(1);
     }
 
     /* default screen */
     memset(shared_memory, 0x00, (size_t)shm_size);
-    printf("Memory attached at %X\n", (int)shared_memory);
+    printf("Memory attached at 0x%X\n", (int)shared_memory);
 }
 
 void maruskin_shm_quit(void)
 {
+    INFO("maru shm quit\n");
+
     if (shmdt(shared_memory) == -1) {
         ERR("shmdt failed\n");
         perror("maru_vga: ");
     }
+    shared_memory = NULL;
 
     if (shmctl(skin_shmid, IPC_RMID, 0) == -1) {
-        ERR("shmctl failed\n");
+        INFO("segment was already removed\n");
         perror("maru_vga: ");
     }
 }
index 3298b55..294854b 100644 (file)
@@ -116,7 +116,7 @@ void set_bin_path_os(gchar * exec_argv)
 
 void print_system_info_os(void)
 {
-  INFO("* Mac\n");
+    INFO("* Mac\n");
 
     /* uname */
     INFO("* Host machine uname :\n");
@@ -164,6 +164,17 @@ void print_system_info_os(void)
     if (sysctl(mib, 2, &sys_num, &len, NULL, 0) >= 0) {
         INFO("* Total memory : %llu bytes\n", sys_num);
     }
+
+    /* java version */
+    INFO("* Java version :\n");
+    char lspci_cmd[MAXLEN] = "java -version 2>> ";
+    strcat(lspci_cmd, log_path);
+
+    fflush(stdout);
+    if(system(lspci_cmd) < 0) {
+        INFO("system function command '%s' \
+            returns error !", lspci_cmd);
+    }
 }
 
 static int get_auto_proxy(char *http_proxy, char *https_proxy, char *ftp_proxy, char *socks_proxy)
index f294449..1cc50f7 100644 (file)
@@ -152,9 +152,9 @@ void print_system_info_os(void)
 
     /* depends on building */
     INFO("* QEMU build machine linux kernel version : (%d, %d, %d)\n",
-            LINUX_VERSION_CODE >> 16,
-            (LINUX_VERSION_CODE >> 8) & 0xff,
-            LINUX_VERSION_CODE & 0xff);
+        LINUX_VERSION_CODE >> 16,
+        (LINUX_VERSION_CODE >> 8) & 0xff,
+        LINUX_VERSION_CODE & 0xff);
 
      /* depends on launching */
     struct utsname host_uname_buf;
@@ -185,6 +185,8 @@ void print_system_info_os(void)
     INFO("* PCI devices :\n");
     char lspci_cmd[MAXLEN] = "lspci >> ";
     strcat(lspci_cmd, log_path);
+
+    fflush(stdout);
     if(system(lspci_cmd) < 0) {
         INFO("system function command '%s' \
             returns error !", lspci_cmd);
index 5f17212..059a25d 100644 (file)
@@ -42,12 +42,13 @@ int shmid;
 
 
 JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorShmSkin_shmget
-    (JNIEnv *env, jobject obj, jint shmkey, jint vga_ram_size)
+    (JNIEnv *env, jobject obj, jint shmkey, jint size)
 {
-    fprintf(stdout, "share.c: shared memory key = %d, size=%d\n", shmkey, vga_ram_size);
+    fprintf(stdout, "share.c: shared memory key=%d, size=%d bytes\n",
+        shmkey, size);
     fflush(stdout);
 
-    shmid = shmget((key_t)shmkey, (size_t)vga_ram_size, 0666 | IPC_CREAT);
+    shmid = shmget((key_t)shmkey, (size_t)size, 0666 | IPC_CREAT);
     if (shmid == -1) {
         fprintf(stderr, "share.c: shmget failed\n");
         fflush(stderr);
@@ -62,12 +63,18 @@ JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorShmSkin_shmget
         return 2;
     }
 
+    fprintf(stdout, "Memory attached at 0x%X\n", (int)shared_memory);
+    fflush(stdout);
+
     return 0;
 }
 
 JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorShmSkin_shmdt
     (JNIEnv *env, jobject obj)
 {
+    fprintf(stdout, "share.c: clean up the shared memory\n");
+    fflush(stdout);
+
     /* Lastly, the shared memory is detached */
     if (shmdt(shared_memory) == -1) {
         fprintf(stderr, "share.c: shmdt failed\n");
@@ -75,12 +82,14 @@ JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorShmSkin_shmdt
         perror("share.c: ");
         return 1;
     }
+    shared_memory = NULL;
 
     /*
     if (shmctl(shmid, IPC_RMID, 0) == -1) {
-        fprintf(stderr, "share.c: shmctl failed\n");
-        fflush(stderr);
+        fprintf(stdout, "share.c: segment was already removed\n");
+        fflush(stdout);
         perror("share.c: ");
+        return 2;
     }
     */
 
@@ -97,7 +106,9 @@ JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorShmSkin_getPixels
         return -1;
     }
 
-    (*env)->SetIntArrayRegion(env, array, 0, len, shared_memory);
+    if (shared_memory != NULL) {
+        (*env)->SetIntArrayRegion(env, array, 0, len, shared_memory);
+    }
 
     return len;
 }
index db8deb0..12203b5 100644 (file)
@@ -202,6 +202,22 @@ public class EmulatorShmSkin extends EmulatorSkin {
                                currentState.getCurrentResolutionHeight() * 4);
                logger.info("shmget native function returned " + result);
 
+               if (result == 1) {
+                       logger.severe("Failed to get identifier of the shared memory segment.");
+                       SkinUtil.openMessage(shell, null,
+                                       "Cannot launch this VM.\n" +
+                                       "Failed to get identifier of the shared memory segment.",
+                                       SWT.ICON_ERROR, config);
+                       System.exit(-1);
+               } else if (result == 2) {
+                       logger.severe("Failed to attach the shared memory segment.");
+                       SkinUtil.openMessage(shell, null,
+                                       "Cannot launch this VM.\n" +
+                                       "Failed to attach the shared memory segment.",
+                                       SWT.ICON_ERROR, config);
+                       System.exit(-1);
+               }
+
                /* update lcd thread */
                pollThread = new PollFBThread(
                                currentState.getCurrentResolutionWidth(),
index 8c21650..063b77c 100644 (file)
@@ -397,6 +397,8 @@ public class EmulatorSkin {
        }
 
        protected void skinFinalize() {
+               logger.info("skinFinalize");
+
                skinComposer.composerFinalize();
        }
 
@@ -1708,6 +1710,7 @@ public class EmulatorSkin {
        }
 
        public void shutdown() {
+               logger.info("shutdown the skin process");
 
                isShutdownRequested = true;
 
index d93a1bd..7e52776 100644 (file)
@@ -99,7 +99,7 @@ public class EmulatorSkinMain {
                        System.setProperty("apple.laf.useScreenMenuBar", "true");
                        System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Emulator"); 
                }
-               
+
                String simpleMsg = getSimpleMsg(args);
                if (simpleMsg != null) {
                        /* just show one message box. that's all. */
@@ -129,6 +129,15 @@ public class EmulatorSkinMain {
                        logger = SkinLogger.getSkinLogger(EmulatorSkinMain.class).getLogger();
                        logger.info("!!! Start Emualtor Skin !!!");
 
+                       logger.info("java.version: " + System.getProperty("java.version"));
+                       logger.info("java vendor: " + System.getProperty("java.vendor"));
+                       logger.info("vm version: " + System.getProperty("java.vm.version"));
+                       logger.info("vm vendor: " + System.getProperty("java.vm.vendor"));
+                       logger.info("vm name: " + System.getProperty("java.vm.name"));
+                       logger.info("os name: " + System.getProperty("os.name"));
+                       logger.info("os arch: " + System.getProperty("os.arch"));
+                       logger.info("os version: " + System.getProperty("os.version"));
+
                        /* startup arguments parsing */
                        Map<String, String> argsMap = parsArgs(args);