obtener posicion en un file descriptor??
Aldrin Martoq
amartoq en dcc.uchile.cl
Mar Feb 3 17:42:54 CLST 2009
On Sat, 2009-01-31 at 21:44 -0300, Daniel Serpell wrote:
> El problema es que no resuelve la pregunta original, ya que el parche de
> biblioteca se debe aplicar *antes* de iniciar el programa.
Yep, segun segui buscando y creo que systemtap puede entregar el $pos de
un fd (y eso cumple mis requerimientos), pero no he tenido tiempo de
probar (ademas que systemtap no viene por default AFAIK).
Otra opcion que vi _sin modificar los programas_ seria armar un modulo
del kernel que ponga un archivo especial en /proc, y uno de el PID y
tire un mapa de los archivos. Ej:
# echo $PID > /proc/fdmaps
#fd #pos
0 -1
1 -1
2 -1
3 545345
Internamente deberia encontrar el task dado un pid, iterar sobre
task->files y llamar al llseek interno (vfs_lseek creo que era)...
> Claro, uno podrÃa mediante GDB inyectar código adicional en tiempo de
> ejecución, pero eso es bastante complejo.
Gracias Daniel, estuvo interesante! Pero no me atreveria a pichicatear
un programa ya corriendo con GDB (ni tu solucion ni inyectar codigo).
La solucion de dd y pv estan buenas y no las conocia (en particular la
ultima), el problema es que tienes que reprogramar tus scripts o las
cosas que estan andando... y hay software que no puedes modificar de
esta forma (ej: una base de datos).
Slds,
--
Aldrin Martoq <amartoq en dcc.uchile.cl>
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/pgp-signature
Tamaño : 197 bytes
Descripción: This is a digitally signed message part
Url : http://listas.inf.utfsm.cl/pipermail/linux/attachments/20090203/4bda470a/attachment.bin
Más información sobre la lista de distribución Linux