En Linux, ¿cómo puedo obtener el nombre de archivo de la estructura de "estructura de archivo", mientras paso por el kernel con kgdb?
Estoy tratando de ver el nombre de archivo a través de kgdb, por lo que no puedo llamar a funciones y macros para obtenerlo programáticamente. Necesito encontrarlo inspeccionando manualmente las estructuras de datos.
Como si tuviera un punto de interrupción aquí en gdb, ¿cómo podría mirar alrededor de gdb y encontrar el nombre del archivo?
He intentado mirar a mi alrededorfilp.f_path
, filp.f_inode
, etc. No puedo ver el nombre del archivo en ninguna parte.
ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
{
struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len };
struct kiocb kiocb;
ssize_t ret;
init_sync_kiocb(&kiocb, filp);
kiocb.ki_pos = *ppos;
kiocb.ki_left = len;
kiocb.ki_nbytes = len;
ret = filp->f_op->aio_write(&kiocb, &iov, 1, kiocb.ki_pos);
if (-EIOCBQUEUED == ret)
ret = wait_on_sync_kiocb(&kiocb);
*ppos = kiocb.ki_pos;
return ret;
}