The mesa-va-drivers-dbgsym package seems to have incorrect (relative to
build) paths stored which prevents gdb showing the source lines when it
has the path to the mesa-22.6.3 source, however by blindly stepping and
then looking at the source it narrows down the cause:
(gdb) s
126 in ../src/gallium/frontends/va/context.c
(gdb) s
__libc_calloc (n=n@entry=1, elem_size=elem_size@entry=4208) at
./malloc/malloc.c:3629
3629 ./malloc/malloc.c: No such file or directory.
(gdb) s
3637 in ./malloc/malloc.c
(gdb) finish
Run till exit from #0 __libc_calloc (n=n@entry=1,
elem_size=elem_size@entry=4208) at ./malloc/malloc.c:3637
0x00007ffff6a69893 in __vaDriverInit_1_17 (ctx=0x5555555702b0) at
../src/gallium/frontends/va/context.c:126
126 ../src/gallium/frontends/va/context.c: No such file or directory.
Value returned is $1 = (void *) 0x5555555f1370
(gdb) n
127 in ../src/gallium/frontends/va/context.c
(gdb) n
130 in ../src/gallium/frontends/va/context.c
(gdb) n
142 in ../src/gallium/frontends/va/context.c
(gdb) n
143 in ../src/gallium/frontends/va/context.c
(gdb) n
144 in ../src/gallium/frontends/va/context.c
(gdb) n
145 in ../src/gallium/frontends/va/context.c
(gdb) n
231 in ../src/gallium/frontends/va/context.c
(gdb) n
232 in ../src/gallium/frontends/va/context.c
(gdb) n
va_openDriver (dpy=dpy@entry=0x555555570140, driver_name=<optimized
out>) at ./va/va.c:535
535 if (VA_STATUS_SUCCESS == vaStatus) {
(gdb) n
583 va_errorMessage(dpy, "%s init failed\n",
driver_path);
Line 230-233 is:
error_screen:
FREE(drv);
return VA_STATUS_ERROR_ALLOCATION_FAILED;
}
which will be jumped to early if:
case VA_DISPLAY_X11:
drv->vscreen = vl_dri3_screen_create(ctx->native_dpy,
ctx->x11_screen);
if (!drv->vscreen)
drv->vscreen = vl_dri2_screen_create(ctx->native_dpy,
ctx->x11_screen);
if (!drv->vscreen)
drv->vscreen = vl_xlib_swrast_screen_create(ctx->native_dpy,
ctx->x11_screen);
break;
...
}
if (!drv->vscreen)
goto error_screen;