用Poseidon 调试 DFL

原文:[url]http://kuan.iteye.com/blog/192447[/url]

首先要和大家说明,我自己本身并没有使用调试器的习惯,所以希望针对这个部份大家可以尽量提出您的意见.

我们先以一个项目做范例,假设我们使用DFL中的一个范例: toolbar.d及toolbar.res; 在这之前,我们必须先编译好dfl.lib及dfl_debug.lib库文件.(可以参考http:/ /kuan.iteye.com/blog/189115来建立库).

1.进入Tools --> Options --> Compiler & Debugger --> 设定Debugger的位置,在这里建议使用Ddbg V0.11.3版.

2.新建项目,把toolbar.d及toolbar.res加入项目,进入档案属性 (Project Property) 的Compiler Options中将[-g] [-debug] [-L/SUBSYSTEM] 选项打勾.

3.选定编译时连结DFL的调试库(dfl_debug.lib),或者是在toolbar.d中加入:
Java代码
1. <SPAN οnmοuseοver=_tipon(this) οnmοuseοut=_tipoff()><SPAN class=google-src-text style="DIRECTION: ltr; TEXT-ALIGN: left">debug { pragma( lib, "dfl_debug.lib" ); } else { pragma( lib, "dfl.lib" ); }</SPAN> debug { pragma( lib, "dfl_debug.lib" ); } else { pragma( lib, "dfl.lib" ); }</SPAN>


4.按下Rebuild All编译生成可执行文件(exe),因为项目属性中选择 [-g], 所以此可执行文件会含有调试信息.

5.按下Debug --> Run Debugger, 此时会出现debug窗口:
[img]http://kuan.iteye.com/upload/picture/pic/14269/58c770ac-5879-362e-b0cf-5c82ac30a589.png[/img]

6.开启toolbar.d文件,设定调试点(CTRL+鼠标左键): (断点,译)
[img]http://kuan.iteye.com/upload/picture/pic/14271/6f4a5ca2-8ede-34e5-b070-3847463ac830.png[/img]

7.按下Debug --> Run/Resume开始调试.
[img]http://kuan.iteye.com/upload/picture/pic/14273/21c3ab6b-fb5f-3068-8387-e3e93027aaf7.png[/img]
上图中,左边的窗口是Stack Frame,目前的Frame是以粗斜体来表示;右边是变量窗口,右上方的Link按钮若是按下的状态,窗口的内容会随着调试的每一个step自动更新,另外右边的Refresh按钮则是立即更新.

8.另外我们可以在Output窗口观看调试器输出的信息:
[img]http://kuan.iteye.com/upload/picture/pic/14275/d10549a2-d947-358e-b3fc-7e350d6e67eb.png[/img]

9.我们也可以直接在Output窗口的命令列直接输入指令: (?,译)
[img]http://kuan.iteye.com/upload/picture/pic/14277/0dc03a4e-36ab-358d-a301-db34ba6d7df3.png[/img]

10.除了在Variables窗口观看变量外,我们也可以把鼠标移到变量上面停止不动,此时会显示变量的内容(有时会失灵......)
[img]http://kuan.iteye.com/upload/picture/pic/14279/bc77bf65-5fad-36b6-b2c7-8983116f2ce6.png[/img]

11.欲结束调试,只要按下Debug --> Stop即可.

12.有时库文件的跳跃似乎不太灵光,我会想办法解决的.....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值