┌──../../../src/EGL/libegl.c─────────────────────────────────────────────────────────────────────────┐
│153 { │
│154 if (_eglPointerIsDereferencable(ptr)) │
│155 return *((void **)ptr); │
│156 return NULL; │
│157 } │
│158 │
│159 static EGLBoolean IsGbmDisplay(void *native_display) │
│160 { │
│161 void *first_pointer = SafeDereference(native_display); │
│162 Dl_info info; │
│163 │
│164 if (dladdr(first_pointer, &info) == 0) { │
│165 return EGL_FALSE; │
│166 } │
│167 │
>│168 return !strcmp(info.dli_sname, "gbm_create_device"); │
│169 } │
│170 │
│171 static EGLBoolean IsX11Display(void *dpy) │
│172 { │
│173 void *alloc; │
│174 void *handle; │
│175 void *XAllocID = NULL; │
│176 │
│177 alloc = SafeDereference(&((_XPrivDisplay)dpy)->resource_alloc); │
│178 if (alloc == NULL) { │
│179 return EGL_FALSE; │
│180 } │
│181 │
│182 handle = dlopen("libX11.so.6", RTLD_LOCAL | RTLD_LAZY | RTLD_NOLOAD); │
│183 if (handle != NULL) { │
│184 XAllocID = dlsym(handle, "_XAllocID"); │
│185 dlclose(handle); │
└────────────────────────────────────────────────────────────────────────────────────────────────────┘
multi-thre Thread 0x7fffce3fe7 In: IsGbmDisplay L168 PC: 0x7ffff52391c1
(gdb) up
#1 0x00007ffff52391c1 in IsGbmDisplay (native_display=0x9c89d0) at ../../../src/EGL/libegl.c:168
#2 0x00007ffff5239425 in GuessPlatformType (display_id=0x9c89d0) at ../../../src/EGL/libegl.c:243
#3 0x00007ffff5239841 in eglGetDisplay (display_id=0x9c89d0) at ../../../src/EGL/libegl.c:386
(gdb) up
#4 0x00007ffff5c8e1a4 in MirEglApp::MirEglApp (this=0x7fffc0000b70, connection=0x9c89d0,
pixel_format=mir_pixel_format_argb_8888)
at /home/chris/Canonical/Mir/mir/examples/miral-shell/spinner/miregl.cpp:133
(gdb) down
#3 0x00007ffff5239841 in eglGetDisplay (display_id=0x9c89d0) at ../../../src/EGL/libegl.c:386
#2 0x00007ffff5239425 in GuessPlatformType (display_id=0x9c89d0) at ../../../src/EGL/libegl.c:243
#1 0x00007ffff52391c1 in IsGbmDisplay (native_display=0x9c89d0) at ../../../src/EGL/libegl.c:168
(gdb)