资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
dbx 调试范例调试范例d dbx 是 unix 下普遍的源码调试工具, 掌握好了 dbx 的使用,无疑象增添了 unix 下编程的一把利器 研究了一下午 dbx 的连机文档,发现 dbx 很是简单易用 现在简单介绍一下 dbx 的使用方法,让更多的朋友免去独自研究的苦楚 。dbx 主要用来调试用 f77 或 cc 等编译工具生成的 fortran 和 c 语言的源代码 ,当然该程序必须在调试过程中用-g 参数包含入调试信息,比方说 我在 unix 下编写了一个 hello.c 的程序: #include void hello(); main() int i,j; i=1; j=2; i=i+1; hello(); printf(“%d,%dn“,i,j); void hello() printf(“hello“); 1. 先用 cc -o helloexe -g hello.c 编译生成带调试信息的 helloexe 文件 。2. 然后用 dbx helloexe 来调试该文件 显示 dbx)这个 dbx 下调试的提示符 3. 现在还不处在调试状态下,需要首先进入调试状态, 这样泥需要先确定从哪里开始第一次中断,以便以后的跟踪调试 这里从第 7 行开始调试,用命令: dbx)stop at 7 设置好断点。 4. 用如下命令开始运行; dbx)run 这时程序运行到第 7 行停止下来, 并显示下一行将要执行的程序 7: i=i+1 5. 这时,你可以用: dbx)print i 命令来查看 i 变量的值 显示 1 或者用 printf “%d“,i 来显示用 c 语言格式的输出。 (aix 下没有 printf 命令) 对以后比较负责的数组什么的,用 dbx)duel i 方式可能更加显示的方便。 以后你可以用 dbx)step (step 相当于 trace into,就是可以进入线程内部,比如本例子中 hello()模块) 或者 dbx)next (next 不进入 hello()模块内部) 来执行下一行程序。 用 dbx)cont 命令可以直接运行到结束。 dbx 中控制命令多多,功能十分强大的。 查看源码可以用 dbx)list begin,end 就显示 hello.c 文件中从 begin 到 end 行的所有程序,并且配上了行号。 用 dbx)file 可以改变泥要查看的源码文件名称. dbx 的的 man 手册使用说明手册使用说明下面是查看了 dbx 的 man 手册后对一些常用/使用命令的中文说明 这些命令对普通的调试已经足够了,一些多线程的调试命令就不加以介绍了 dbx 使用指南: 1:实用命令 quit/q 退出 q 退出 run arg1 arg2 . 用参数运行现有进程 r 用上次的参数再次运行 stop at 在第 line 行设断点 stop at 在过程 proc 被调用处设断点 cont 继续运行到记号(断点或其他)处 return 执行完目前的进程返回 print . 打印表达式的值 printf “string“,exp,. 用 c 语言的格式打印结果 where 打印当前调试状态,包括当前进程等信息 func 看当前运行进程名/移动到调用 proc 进程的母进程处 file 查看的文件切换到 file 文件处 list , 从 file 文件中列出从 exp1 行到 exp2 行 list : 列出 file 文件中从 exp 行开始的 int 行 whatis 显示变量的类型 sh 崭时进入 sh 状态 sh 执行一 shell 命令 2:常用命令说明 alias name “string“ 把 string 内容定义为一缩略语 name help section 寻找某指令的帮助 playback input 从 file 中调入调试命令流 playback output 输出 file 中的调试命令流 record input 把调试过程输出到 file 中 record output 把命令的运行输出保存到 file 中 history 显示历史命令 hed 编辑历史调试命令 ! 运行历史命令流中第 int 个命令 !- 运行历史命令中倒数第 int 个命令 ! 运行历史命令流中以 string 打头的命令 ! 重复上一个命令 command;command . 多调试命令间用“;“隔开 step 向前追踪步,进入线程 next 向前追踪步,不进入线程 delete all 清所有断点 listobj 列出目前使用的 obj 单元 listregions 列出被用到的内存区 enable /disable 恢复/禁用号断点 catch 显示所有碰到的记号 cont at 运行直到 line 行 intercept all 在所有例外处都中断 bx chat 在所有出现 char 打头的异常处中断 kill 杀死 pid 线程 goto 从 line 行开始运行 stop 当 var 产生变化时中断 stop 当进入 proc 进程时中断 stop var at if 条件中断 trace 当 var 变化时输出其原值和新值 trace 当进入进程时打印出母进程和参数 when if command_list 当条件为真时执行命令列 when at if command_list 在遇到 line 行时如果条件为真执行命令列 duel 一种比较好的变量输出方式 printregs 输出所有寄存器的值 status 当前状态 / 向下寻找 file 中的 string 字符串 ? 向上寻找 file 中的 string 字符串 set 设定或显示系统参数值
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号