BBS水木清华站∶精华区

发信人: godugodu (本id收归国有), 信区: Unix        
标  题: dbx源码调试工具快速上手(1) 
发信站: BBS 水木清华站 (Tue Mar 14 20:22:05 2000) 
 
dbx是unix下普遍的源码调试工具, 
掌握好了dbx的使用,无疑象增添了泥在unix下编程的一把利器 
查找了一下整个unix板精华区,都没有发现有dbx的介绍文档, 
大概各位大侠都对这个土土的东东都不愿浪费笔墨巴 
研究了一下午dbx的连机文档,发现dbx很是简单易用 
现在简单介绍一下dbx的使用方法,让更多的朋友免去独自研究的苦楚 
dbx主要用来调试用f77或cc等编译工具生成的fortran和c语言的源代码 
当然该程序必须在调试过程中用-g参数包含入调试信息,比方说 
我在unix下编写了一个hello.c的程序: 
void hello(); 
main 

 int i,j; 
 i=1; 
 j=2; 
 i=i+1; 
 hello(); 
 printf("%d,%d\n",i,j); 

void hello() 

 printf("hello"); 

先用cc -o helloexe -g hello.c编译生成带调试信息的helloexe文件 
然后用dbx helloexe来调试该文件 
显示dbx)这个dbx下调试的提示符 
现在泥还不处在调试状态下,需要首先进入调试状态, 
这样泥需要先确定从哪里开始第一次中断,以便以后的跟踪调试 
这里从第7行开始调试,用命令: 
dbx)stop at 7 
设置好断点后就开始运行; 
dbx)run 
这时程序运行到第7行停止下来, 
并显示下一行将要执行的程序7: i=i+1 
这时,泥可以用: 
dbx)print i命令来查看i变量的值 
显示 

或者用printf "%d",i来显示用c语言格式的输出 
对以后比较负责的数组什么的,用 
dbx)duel i方式可能更加显示的方便 
以后 
泥可以用 
dbx)step或者 step ==trace into 
dbx)next来执行下一行程序,next=trace over 
用dbx)cont命令可以直接运行到结束, 
其中控制命令多多,功能十分强大的. 
查看源码可以用 
dbx)list begin,end 
就显示hello.c文件中从begin到end行的所有程序,并且配上了行号 
用dbx)file <filename>可以改变泥要查看的源码文件名称. 
enjor it! 
 
-- 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.7.200] 

BBS水木清华站∶精华区