dbx
在调试程序前,必须先将-g选项包含在编译信息中,编译生成带调试信息的文件,即:cc -o filename -g file.c。
进入dbx通常只需输入"dbx filename"即可,filename为待调试的可执行程序名。
dbx加载后就显示提示符:(dbx),此时用户就可以输入dbx子命令进行调试了。
下面是一些dbx的常用命令:
1.基本操作命令
run arg1 arg2 ... :以arg1,arg2,...为参数开始运行现有进程。
r:用上次使用的参数再次运行现有进程。
source filename:从文件名为filename的文件中读入dbx子命令并执行。
return:执行完目前的进程后返回。
sh command:不退出dbx,执行一条操作系统shell命令。
sh:暂时进入shell状态。
quit:退出dbx,若程序未执行完则终止其执行。
2.置断点与跟踪点命令
stop var at n:置断点命令,当第n行的变量var发生变化时将程序挂起。
stop var in proc:置断点命令,当过程proc的变量var发生变化时将程序挂起。
stop at n:置断点命令,当执行到第n行时将程序挂起。
stop in proc:置断点命令,当执行到过程proc时将程序挂起。
trace var at n:置跟踪点命令,当第n行的变量var改变时显示跟踪信息。
trace var in proc:置跟踪点命令,当过程proc的变量var改变时显示跟踪信息。
trace n:置跟踪点命令,当执行到第n行时显示被跟踪信息。
trace proc:置跟踪点命令,当执行到过程proc时显示被跟踪信息。
trace expr at n:置跟踪点命令,当执行到第n行时显示var的值。
delete n|all:删除第n行的/所有的断点与跟踪点。
3.调试命令
cont at n:运行直至第n行。
print var:打印变量var的值。
printf "string",expr,...:以C语言的格式打印。
where:打印当前调试状态,包括当前进程的信息。
func:查看当前运行的进程名。
func proc:移至到调用proc进程的母进程处。
whatis name:显示对变量名或过程名name的类型。
step [n]:单步执行一行或n行,遇到线程调用时进入线程调用。
next [n]:单步执行一行或n行,遇到线程调用时拒绝进入线程调用。
skip [n]:跳过一个或n个断点,继续往下执行
dump [proc] [>file]:显示当前或proc过程的所有变量名及其值
assign var=expr:给变量var赋以表达式expr的值
4.读取被调试程序命令
list:列出从当前行开始的若干行源程序。
list n,m:列出从第n行到第m行的源程序。
/string:朝文件尾方向查找字符串string
?string:朝文件头方向查找字符串string
file filename:将查看的文件切换到文件filename处。
相关阅读
数据库 “数据库”是以一定方式储存在一起、能够多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 【基本
作者:蓝藻时间:2018.7.3前言 本文特点 授之以渔:了解命令学习方法、用途:不再死记硬背,拒绝漫无目的; 准确无误:所有命令执行通过(环境为
1、安装: 移除原来的mysql服务:mysqld -remove MySQLmysqld -install2、初始化:mysqld --initialize3、启动:net start mysql4
在Linux下行走的大侠估计没人不知道vim的,但很多人可能只是简单的用一下,或者是用的时候上网查一下。但认真思考一下,似乎很多命令不
1配置个人信息,方便提交代码管理 获取Git配置信息,执行以下命令: git config --list 如果你还没有设置名字 user.name 和 user.ema