gdb命令

来源:互联网 发布:如何将数据转换成图表 编辑:程序博客网 时间:2024/06/05 02:06

gdb:

run是开始的执行程序,遇到断点会结束;类似于运行吧,start 语句则是默认在main中第一条执行语句中断
直接gdb object即可;有两种调用方法(gdb -q object ; gdb -q -tui object),
list 1 从第一行开始,或者list function 将这一个函数直接读进来;默认都是10行;

display以后,变量的值都比较奇怪,应该是打印后面的语句是已经执行了的才可以;只能一次设置一个,然后能delete display #或者disable display #

重新执行程序是start。
s是step的意思,并不是开始;
print (p)/x  i,j,k可以查看当局变量的;
info(i) lo可以查看所有的当局变量的;
breaktrace(bt)查看当前执行的栈情况,一般是0是最上面,先执行被后面的调用;
frame(f) 1
是进入1号栈并且可以进行执行;
run是开始的执行程序,遇到断点会结束;
continue(c)是执行结束直到遇见设置的断点;
finish则是执行到当前的栈或者函数结束;
next(n)是执行语句,并不见缝插针的那种;
print(p)可以打印表达式;也可以打印变量值
set var s=9;你懂得;
undisplay 单用;
break(b) 5或者fun(类似于list) 是第五行设置断点,然后c运行时就可以直接运行到此处了
info(i)
 breakpoints 是查看断点的设置情况;
info frame 也是可以的;
delete breakpoints ;delete breakpoints ;disable breakpoints n;
执行汇编语句的话就是si,ni;i就是instruction
disassemble 是反汇编,就是把可执行程序机器码变成汇编代码
查看错误文件,
gdb -c core object 然后再bt或者where;
nemiver :
命令行里启动:nemiver filename(path,name),<F6>相当于s;<F7>相当于n;<F11>相当于运行到光标那里;<S-F7>则是跳出循环了;遇到库函数时不能进入,因为没有源文件,不同于IDE;

0 0
原创粉丝点击