【发布时间】:2011-06-07 20:02:45
【问题描述】:
我正在寻找对 linux 内核中堆栈的良好描述,但我发现很难找到任何有用的东西。
我知道大多数系统的堆栈限制为 4k,而其他系统限制为 8k。我假设每个内核线程/下半部分都有自己的堆栈。我还听说如果中断发生,它会使用当前线程的堆栈,但我找不到任何关于这方面的文档。我正在寻找的是堆栈是如何分配的,如果它们有任何好的调试例程(我怀疑某个特定问题的堆栈溢出,我想知道是否可以编译内核来警察堆栈大小等)。
【问题讨论】:
-
您使用的是哪个内核版本?因此我们对您可用的内核调试配置选项有更好的了解。
-
我似乎不明白这一点。为什么调试器不足以完成任务?
-
"bottom-halves" 可能共享同一个堆栈。另外,“下半部分”很久以前就消失了,现在还剩下一些软中断。
-
使用
ulimit -s命令。结果以 KiB 为单位。 -
这是关于用户态还是kthreads?用户区:unix.stackexchange.com/questions/145557/…
标签: linux linux-kernel linux-device-driver