【发布时间】:2013-03-11 06:44:14
【问题描述】:
看起来我的内核模块在重负载下正在执行一些堆栈粉碎。我可以为内核模块使用 -fstack-check 编译选项吗?似乎该编译选项会导致编译器发出额外的代码,但不会链接到库或运行时。对吗?
我有一个非常简化的内核,它并没有做太多事情。我可以在启用和不启用 slub 调试的情况下加载那个简单的内核,并且它也会在编译时加载和不加载 -fstack-check。当我开始测试我的模块时,当我使用 -fstack-check 编译选项时它开始崩溃,而仅使用 slub 调试似乎不会引发错误。
另一个问题 (How does the gcc option -fstack-check exactly work?) 提供了一些信息,但我无法找到在内核模块编译中使用 -fstack-check 选项的人的示例。
【问题讨论】:
标签: gcc linux-kernel stack stack-overflow ubuntu-10.04