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 调试器

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