浅谈linux下的GDB调试

来源:互联网 发布:im talk英语聊天软件 编辑:程序博客网 时间:2024/05/11 12:04

浅谈linux下的GDB调试

废话多说不如动手一试,且看demo(言多必失,还令人费解):

gcc -g ex.c -o exgdb -tui(按操作提示回车)file exbreak 7break 12run watch nwatch linfo breakcontinuenextinfo localscontinuedelete 3print nptype nfinish(咻一下直接运行完)quit

ex.c如下:

#include <stdio.h>#include <stdlib.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) {    int m=3,n=5,s=1,k=1,i,l=1;    for(n=1;n<=5;n++)        s=s*n;    for(m=1;m<=3;m++)        k=k*m;    for(i=1;i<=(5-3);i++)        l=l*i;    printf("%d",s/k/l);    return 0;}

1、直接按回车是继续上一步命令
2、编译要加-g,才能调试。
3、先运行,后watch,数值定义后才能进行watch,不然会告诉你找不到。
4、tui调试方式代码明了直观,但是命令行回退之前命令变成了control+p,反之control+n。可以不用tui。
5、break、watch等后面可以加条件判断如break 55 if i>99
6、几乎所有命令都可以用首字母缩写代替。
7、step和next都是单步执行,但是step遇到函数会步入。
8、set var i = 10 可以改数值调试。
9、循环前until(u)就可以执行完循环体,但不跳出函数。
10、jump N 可以跳到第N行,是不执行中间行

0 0
原创粉丝点击