内核模块化调试器 (kmdb) 使用 lex 生成词法分析器以从内核空间[1] 使用。有一些 hack,其中一些甚至不兼容 POSIX。
我有问题:
- 在内核模式下使用 lex 有哪些陷阱?
- flex [2] 有什么合理的方法可以采用 [1] 吗?
- 内核空间的 lex/flex 有哪些替代方案?
(最后我将构建和使用 illumos 的 lex,但我真的想避免它)
[1] https://github.com/illumos/illumos-gate/blob/master/usr/src/cmd/mdb/common/mdb/mdb_lex.l