我希望能够打印 Linux 内核中线程的堆栈跟踪。
详细信息:我想向特定函数添加代码(例如
swap_writepage()
),该函数将打印调用该函数的线程的完整堆栈跟踪。像这样的东西:
int swap_writepage(struct page *page, struct writeback_control *wbc)
{
/* code goes here to print stack trace */
int ret = 0;
if (try_to_free_swap(page)) {
unlock_page(page);
goto out;
}
if (frontswap_store(page) == 0) {
set_page_writeback(page);
unlock_page(page);
end_page_writeback(page);
goto out;
}
ret = __swap_writepage(page, wbc, end_swap_bio_write);
out:
return ret;
}
@rakib 当然是完全正确的。
此外,我想指出,可以定义简单而优雅的宏,以帮助在需要时打印调试信息。多年来,我将这些宏和便利例程放入头文件中;您可以查看并在这里下载:“方便的标题”。
有宏/函数可以:
哇:-)