Я хотел бы иметь возможность печатать трассировку стека потока в ядре 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 под отладчиком. Примечание: если вы являетесь разработчиком ядра newb и хотите запустить Linux под отладчиком, не прилагайте усилий к этому... он окажется бесплодным (шаг не имеет смысла).
