0
在linux內核(4.5.5)中,我添加了一個printk()
到mm/filemap.c。task_pid_nr(current)返回一個pid,它沒有出現在ps的輸出中
,我已經添加的代碼是__generic_file_write_iter()
內:
if(io_tracing_on) {
ssize_t write_size = iov_length(from->iov, from->nr_segs);
printk(KERN_INFO "write size=%zu, pid=%d, inode=%lu\n", write_size, task_pid_nr(current), inode->i_ino);
}
當io_tracing_on
評估爲真,我得到輸出(在different question討論)的連續流如下:
Jun 27 15:00:41 malka kernel: [ 463.424155] write size=168, pid=715, inode=7864653
Jun 27 15:00:41 malka kernel: [ 463.428064] write size=168, pid=715, inode=7864354
在這個連續的輸出流中,我試圖將pid(715)映射到ps -ef
的輸出,但這無濟於事 - 進程列表中不存在pid。有沒有辦法讓我確定task_pid_nr(current)
所指的是什麼過程?
您可能要打破你的一些代碼行 - 只有'的printk的重要組成部分()'行在我的屏幕上顯示編輯模式 – tofro
@tofro有趣的。你是否還沒有獲得該代碼塊的水平滾動條? – buratino
'ps'的輸出中是否出現'task_pid_vnr(current)'返回的虛擬PID? –