vincular vez tutorial tiempo solucion prestamo modo mismo jugar juegos funciona family familiar dlc cuentas compartir compartida como bloqueada biblioteca gdb shared-libraries

vez - hacer que gdb cargue una biblioteca compartida desde una ruta específica



steam family sharing como funciona (1)

Obtuve un núcleo mientras ejecutaba una aplicación y guardé el archivo ejecutable, el archivo central y una biblioteca compartida que la aplicación usa en /tmp para verificarlos más tarde. Luego modifiqué la biblioteca, la reconstruí y comencé el ejecutable nuevamente. Ahora cuando intento depurar el núcleo, gdb está cargando la biblioteca compartida desde su ruta original y no desde el directorio /tmp donde /tmp la biblioteca original.

Por ejemplo, la ruta original era /opt/mydir/lib/libmylib.so.0 . gdb está cargando esta biblioteca compartida, mientras que yo quiero que cargue /tmp/libmylib.so.0 . La aplicación también utiliza algunas bibliotecas estándar que se encuentran en los directorios /usr/lib y /lib , por lo que no quiero que estas rutas se modifiquen. Solo quiero cambiar /opt/mydir/lib/ -> /tmp . ¿Cómo puedo hacer eso?


La solución más simple es restaurar temporalmente /opt/mydir/lib/libmylib.so.0 a la copia que se usó en el momento del bloqueo (es decir, la que ahora está en /tmp ), analizar el núcleo y restaurar la nueva versión.

Si no quiere hacer eso, set solib-search-path y set sysroot son sus amigos .

Tenga en cuenta que debe establecer ambos antes de cargar el core . Esta secuencia debería funcionar:

(gdb) set sysroot /no/such/file (gdb) set solib-search-path /tmp:/usr/lib:/lib (gdb) core /tmp/core