WEB开发网
开发学院软件开发Java 使用 CDT 调试器,第 2 部分: 使用 Eclipse CDT 和... 阅读

使用 CDT 调试器,第 2 部分: 使用 Eclipse CDT 和 MI 访问 gdb

 2009-12-19 00:00:00 来源:WEB开发网   
核心提示: -i mi 标志告诉 gdb 使用 MI 协议通信,您可以看到显著的区别,使用 CDT 调试器,第 2 部分: 使用 Eclipse CDT 和 MI 访问 gdb(3),命令名称和输出性质都有了显著改变,输出记录的第一行是 ^running 或 ^done,CDT 访问 ICDebugger2

-i mi 标志告诉 gdb 使用 MI 协议通信,您可以看到显著的区别。命令名称和输出性质都有了显著改变。输出记录的第一行是 ^running 或 ^done,接下来是结果信息。这个输出被称为结果记录 ,它包括 ^error 和错误消息。

在许多情况下,MI 结果记录之后是 (gdb) 和带外(out-of-band,OOB)记录。这些记录提供目标状态或调试环境的额外信息。-exec-step 后的 *stopped 消息是一个 OOB 记录,它提供关于断点、检查点和目标暂停或结束原因的信息。在先前的会话中,gdb 在每个 -exec-step 后返回 *stopped,reason="end-stepping-range" 和目标状态。

gdb/MI 很难理解,但非常适合软件进程间的通信。CDT 通过创建发送和接收数据的伪终端(pseudo-terminal,pty)来实现通信。然后,它启动 gdb 并创建两个会话对象来管理调试数据。

启动调试器

正如 第 1 部分 中所描述的,当用户单击 Debug 时,CDT 访问 ICDebugger2 实例并调用它来创建 ICDISession。该调试器类必须在扩展 org.eclipse.cdt.debug.core.CDebugger 扩展点的插件中标识出。清单 4 显示了 CDT 中这个扩展的样子。


清单 4. CDT 默认的调试器扩展
  <extension point="org.eclipse.cdt.debug.core.CDebugger"> 
   <debugger 
      class="org.eclipse.cdt.debug.mi.core.GDBCDIDebugger2" 
      cpu="native" 
      id="org.eclipse.cdt.debug.mi.core.CDebuggerNew" 
      modes="run,core,attach" 
      name="gdb Debugger" 
      platform="*"> 
     <buildIdPattern 
        pattern="cdt\.managedbuild\.config\.gnu\..*"> 
     </buildIdPattern> 
   </debugger> 
  </extension> 

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 CDT 调试器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接