gpt4 book ai didi

linux-kernel - 在 Linux 中,如何从 "struct file"结构中获取文件名,同时使用 kgdb 通过内核?

转载 作者:行者123 更新时间:2023-12-04 04:21:47 25 4
gpt4 key购买 nike

我正在尝试通过 kgdb 查看文件名,因此我无法调用函数和宏来以编程方式获取它。我需要通过手动检查数据结构来找到它。

就像我在 gdb 中有一个断点一样,我怎么能用 gdb 环顾四周并找到文件名?

我试过在 filp.f_path 中环顾四周, filp.f_inode等。我在任何地方都看不到文件名。

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;
}

最佳答案

您可以从 struct file *filp 获取文件名与 filp->f_path.dentry->d_iname .

要获取完整路径,请调用 dentry_path_raw(filp->f_path.dentry,buf,buflen) .

关于linux-kernel - 在 Linux 中,如何从 "struct file"结构中获取文件名,同时使用 kgdb 通过内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com