设置ddd字体
原始的ddd字体丑陋,像素化,需要设置合适的字体大小,点击Edit->Preferences->Fonts。然后看到不同设置。然后点击Browse,显示如下:
点击图中的fmly,选择fixed(这是系统提示作者选fixed的,本人ubuntu系统,不同系统可能不同),然后点击ptSz,选择字体大小,我选的200,然后点击select保存即可。其他Browse都是类似设置。最后点击OK保存即可。
设置显示代码行号
行号是十分重要的信息,在调试时十分有用,可是默认没有显示,需要自己设置。点击Edit->Preferences->Source,然后选中Display Source Line Numbers即可。
ddd 图形化显示数据
ddd是一个借助与gdb的强大的图形化debug工具。它可以使得gdb是可视化的,不再是枯燥的命令行的形式。而且它支持数据的显示,包括列表和图的形式等。特别是图的形式,在进行debug时特别直观而有用。
gnuplot 的设置
由于ddd使用gnuplot画图,所以确认系统上安装了gnuplot,未安装的话则sudo apt-get install gnuplot即可。打开Edit->Preferences->Helpers可以看到Plot设置的选项,Plot Window选项为External或者Builtin。我选择的是External,不知道为何,选中Builtin时在画图时一直是显示Starting gnuplot的状态。这样就设置好了gnuplot。
在调试程序时画图
以作者调试的cuda程序为例。在进入kernel核函数后,有一个共享内存数组dest_data长度64,则可在如下输入"dest_data[0]@64",然后点击右边的plot,则可以显示dest_data的值
这是对数据排序的程序,当程序运行到如下位置时,数据还未被赋予值:
接着运行,可以发现数组被赋予了未排序的值:「
运行到如下位置时,数据已经排序好:
总结
- 由上可见,ddd功能十分强大,可以好好利用;
- 它支持多种语言,并且支持GPU调试,即使它最后更新是2009年(因为它的设计十分巧妙,可以应对不断更新的gdb以及不同的调试器);
- 温馨提示,代码中最好不要有中文,不然显示乱码,且调试时断点等位置会显示不正确。