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 <[email protected]> http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/
signature.asc
Description: This is a digitally signed message part

