我希望能够在
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;
}
我的故事:
最近,Linux内核开发人员在改进内核时开始采用面向对象的原则,这是用C语言编写的.由于C不是OO语言,事情开始变得非常丑陋和难以理解,更不用说没有一个体面的IDE了分析C代码.我不想开始在调试器下运行Linux.注意:如果你是一个内核开发新手,并希望在调试器下运行Linux,请不要付出努力…它将证明是徒劳的(踩踏没有意义).