┌──../../../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)