我编写了一个简单的gdb/mi解析器,可以将gdb/mi值解析为一棵树。但是现在我想构建一个流解析器,这样我就可以将部分gdb/mi输出抛给解析器,或者类似于sax解析器。
我只知道如何实现递归解析器来解析值,但不知道整个mi输出。此外,我不知道如何使解析器暂停并按需继续。
有人能给我点主意吗?
发布于 2014-01-08 04:07:30
一些普通的笔记。
首先,手册中的MI语法在某些地方是错误的。由于向后兼容性,没有人修复代码。因为我不知道..。joy的懒惰或缺乏,也没有人修过手册。详细信息要么是bugzilla中封闭的(叹息)bug,要么是邮件列表存档中的。
第二,方法是将gdb的每一行输出作为要分析的文本。
第三,已有其他几个现有的MI解析器。您可能更喜欢从现有的开始。
第四,或者您可能只想在gdb内部用Python编写代码,避免整个解析混乱。不完全清楚Python是否涵盖了MI公开的所有功能,但它可能非常接近。
https://stackoverflow.com/questions/20977754
复制相似问题