我正在为gdb编写一个包罗万象的前端。暂时不要介意我的意图(它们有很多,是的,我一直在寻找替代方案)。我正在尝试利用尽可能多的现有库和API来完成繁重的工作(GNU source-highlight,srchiliteqt,qtcreator的gdb-mi接口函数等);这样做的好处是用户不需要重新编码GUI即可添加对其他语言的支持,这是我在几乎所有其他调试器前端中都发现的局限性。
到目前为止,我已经取得了很大的进步,但是我试图在右键单击变量时设置上下文菜单,或者在将鼠标悬停在变量上时设置工具提示,但是我遇到了试图弄清楚如何在编辑器窗口中识别“变量”时的心理障碍。 GDB似乎有一种MI方法来确定可执行(相对于noop)行,我正在使用它来定制行是否具有“设置断点”选项,但是我找不到与“查找断点”等效的任何东西。语言无关的方式。我突然意识到source-highlight可能已经从它的规则集中做了一个底层的(尽管它可能不知道函数和变量之间的区别,但是我可以接受),但是我可以找不到用于将该信息返回给调用程序的任何预先存在的方法。
当它找到某个代码类时,似乎好像具有“事件”回调,但是该接口似乎适合于调试源代码突出显示引擎,因此不适合(或根本不适合)这种情况。任何人都知道在没有编码GNU源码高亮库的更改的情况下获取这些信息的任何方法吗?