Qt代码编辑器中断点的实现

Qt代码编辑器中断点的实现,qt,ide,editor,breakpoints,text-editor,Qt,Ide,Editor,Breakpoints,Text Editor,我正在开发一个IDE,用于调试Qt中的脚本和代码 我的职责是实现GUI,在此url中的Qt文档中有一个非常好的代码编辑器示例: 所有引入的功能(如行号、突出显示和语法) 很好地解释了这些问题,但有一些关于将断点作为代码编辑器文档的扩展来实现的话: 除线号外,还可以向额外区域添加更多线号,例如断点 我只是想知道,因为文档明确指出断点实现将是开发代码编辑器组件的下一步,但当我搜索网站时,我没有找到任何相关的文章或项目,也没有找到在IDE中实现断点的例子。 我只是想问你是否知道关于这件事的任何例子或指

我正在开发一个IDE,用于调试Qt中的脚本和代码 我的职责是实现GUI,在此url中的Qt文档中有一个非常好的代码编辑器示例:

所有引入的功能(如行号、突出显示和语法) 很好地解释了这些问题,但有一些关于将断点作为代码编辑器文档的扩展来实现的话:

除线号外,还可以向额外区域添加更多线号,例如断点

我只是想知道,因为文档明确指出断点实现将是开发代码编辑器组件的下一步,但当我搜索网站时,我没有找到任何相关的文章或项目,也没有找到在IDE中实现断点的例子。 我只是想问你是否知道关于这件事的任何例子或指南,如果你能帮助我完成这件事,我将非常高兴,否则我将自己进行分类,并在这里提出更详细的问题

提前感谢阅读:)

更新

我最终实现了这样的特性,比如:断点和断点区域、正在运行的当前行、单步执行、单步执行、继续和其他调试器特性,并且我使用PythonQt作为与Python/capi通信的API来调试我的脚本。 我使用QTextBlockUserData实现断点数据及其方面,因此它将由块的数据本身管理。
这就是我一开始寻找的所有东西。如果有人有任何问题,我很乐意提供帮助。

我最好的猜测是查看QtCreator断点支持

UI部件包含在此类和其他类中:

。。。而真正的逻辑取决于引擎。有不同的调试器引擎,如gdb、cdb for Windows、QML调试器等)

查看gdb引擎,有一个gdb进程在MI模式下运行。这种模式使程序很容易解析gdb输出;例如,尝试将gdb-i=mi程序设置为debug。此外,文档可能会有所帮助:

QtCreator然后读取gdb进程的输出,以显示调用堆栈等信息;见例

所以我要做的是:

  • 实现UI以设置断点、启动调试器等
  • 在自己的进程和计算机模式下运行调试器(如果可用)
  • 连接该进程的输入/输出以设置断点、显示调用堆栈等

  • +1用于提及gdb和cdb。事实上,调试不是qtcreator或qt问题,它只是连接到真正的调试器gdb或cdb。只需添加某种标记。它可以突出显示行(阅读编辑器小部件中关于“额外选择”的文档,或者实现一些在行号上绘制的标记,等等)。那么如何与调试器进行通信,没有任何内置支持。