hi,

I notice that the zygote process name change to "main" Lollipop , but in
KitKat and before, the zygote process name is "zygote".

in Lollipop:

$ adb shell ps | grep -i zygote

root      376   1     1492064 67316 ffffffff 00000000 S zygote



$ adb shell cat /proc/376/stat

376 (main) R 1 376 0 0 -1 4194560 170602 262860 825 248 283 137 226 174 20
0 1 0 637 1522405376 16861 4294967295 1 1 0 0 0 0 4612 0 103672 4294967295
0 0 17 3 0 0 0 0 0 0 0 0



$ adb shell cat /proc/376/comm

main


in KitKat:

$ adb shell ps | grep -i zygote

root      329   1     867640 64860 ffffffff 00000000 S zygote



$ adb shell cat /proc/329/stat

329 (zygote) S 1 329 0 0 -1 1077936384 106227 3303200 682 1688 618 798
27926 9112 20 0 4 0 1254 888463360 16215 4294967295 1 1 0 0 0 0 4612 0
103672 4294967295 0 0 17 0 0 0 0 0 0 0 0 0



$ adb shell cat /proc/329/comm

zygote


In app_main.cpp when start zygote, it will set nicename, and set the
process name with niceName.


frameworks/base/cmds/app_process/app_main.cpp


int main(int argc, char* const argv[])

...

        if (strcmp(arg, "--zygote") == 0) {

            zygote = true;

            niceName = ZYGOTE_NICE_NAME;

...

    if (!niceName.isEmpty()) {

        runtime.setArgv0(niceName.string());

        set_process_name(niceName.string());

    }


but in new AndroidRuntime ART, the will change the name "zygote" to "main"

    if (zygote) {

        runtime.start("com.android.internal.os.ZygoteInit", args);


#0  0xb6f0116c in prctl  /system/lib/libc.so

    bionic/libc/arch-arm/syscalls/prctl.S:16

#1  0xb6edda48 in pthread_setname_np+0x0040(+64)  /system/lib/libc.so

    bionic/libc/bionic/pthread_setname_np.cpp:56

      t (long int) = -1225441592(0xb6f53ec8)

      thread_name (char *) = 0xbedc94a4 "main" [@ENTRY=0xbedc94a4 "main"]

#2  0xb4f479ae in art::SetThreadName+0x006e(+110)  /system/lib/libart.so

    art/runtime/utils.cc:1010

      thread_name (char *) = 0xb4fd9904 "main" [@ENTRY=0xb4fd9904 "main"]

      buf (char [16]) =  "main"

#3  0xb4f31f7a in art::Thread::Attach+0x00b2(+178)  /system/lib/libart.so

    art/runtime/thread.cc:409

      thread_name (char *) = 0xb4fd9904 "main"

#4  0xb4f20204 in art::Runtime::Init+0x0338(+824)  /system/lib/libart.so

    art/runtime/runtime.cc:788

#5  0xb4f21dde in art::Runtime::Create+0x0032(+50)  /system/lib/libart.so

    art/runtime/runtime.cc:335

#6  0xb4ed99d2 in JNI_CreateJavaVM+0x01b2(+434)  /system/lib/libart.so

    art/runtime/jni_internal.cc:3026

#7  0xb6e19266 in android::AndroidRuntime::startVm+0x0882(+2178)
 /system/lib/libandroid_runtime.so

    frameworks/base/core/jni/AndroidRuntime.cpp:887

#8  0xb6e19892 in android::AndroidRuntime::start+0x00fe(+254)
 /system/lib/libandroid_runtime.so

    frameworks/base/core/jni/AndroidRuntime.cpp:967

      this (AndroidRuntime *) = 0xbedca858

      className (char *) = 0xb6f56f50 "com.android.internal.os.ZygoteInit"

#9  0xb6f56658 in main+0x02ec(+748)  /system/bin/app_process32

    frameworks/base/cmds/app_process/app_main.cpp:309

      niceName (String8) = {

        mString (char *) = 0xb5018418 "zygote"}


So the zygote process name is set "zygote" first, then change to "main" in
Lollipop, Is it a bug?


Thanks.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to