• linux-c/c++调试利器gdb、ddd小试


    linux-c/c++调试利器gdb、ddd小试

    原文链接: http://deepfuture.iteye.com/blog/749148

    博客分类:

    一、gdb,在shell窗口调试

    main.c内容:

    main.c

    #include <stdio.h>

    int main() 

    {

    int y=0;

    for (int i=0;i<10;i++){

       y+=i;

    }

    return 0;

    }

    深未来技术原创文章,如转载,请注明来源http://deepfuture.iteye.com/ 

    编译:

    deepfuture@deepfuture-desktop:~/test$ gcc -ggdb -std=c99 -o main main.c

    启动gdb

    1、gdb 执行文件名

    deepfuture@deepfuture-desktop:~/test$ gdb main

    GNU gdb (GDB) 7.1-ubuntu

    Copyright (C) 2010 Free Software Foundation, Inc.

    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

    This is free software: you are free to change and redistribute it.

    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"

    and "show warranty" for details.

    This GDB was configured as "i486-linux-gnu".

    For bug reporting instructions, please see:

    <http://www.gnu.org/software/gdb/bugs/>...

    Reading symbols from /home/deepfuture/test/main...done.

    2、list为列出源代码

    (gdb) list

    1

    2 #include <stdio.h>

    3 int main() 

    4 {

    5 int y=0;

    6 for (int i=0;i<10;i++){

    7   y+=i;

    8 }

    9 return 0;

    10 }

    3、运行
    (gdb) run
    Starting program: /home/deepfuture/test/main 
     
    Program exited normally.
    4、退出gdb
    (gdb) quit
    5、启动gdb后,再设置要加载的文件
    (gdb) file main
    Reading symbols from /home/deepfuture/test/main...done.
     
    6、设置断点,,使用break行号
     
    (gdb) list
    warning: Source file is more recent than executable.
    1
    2 #include <stdio.h>
    3 int main() 
    4 {
    5 int y=0;
    6 for (int i=0;i<10;i++){
    7   y+=i;
    8 }
    9 return 0;
    10 }
     
    (gdb) break 7
    Breakpoint 1 at 0x80483ca: file main.c, line 7.
     
    7、运行,run
    (gdb) run
    Starting program: /home/deepfuture/test/main 
     
    Breakpoint 1, main () at main.c:7
    7   y+=i;
    8、离开这个断点,继续运行
    (gdb) c
    Continuing.
    9、监视变量
    (gdb) watch y
    Hardware watchpoint 2: y
    10、检查变量变化
    (gdb) c
    Continuing.
    Hardware watchpoint 2: y
     
    Old value = 1
    New value = 3
    main () at main.c:6
    6 for (int i=0;i<10;i++){
    (gdb) c
    Continuing.
     
    Breakpoint 1, main () at main.c:7
    7   y+=i;
    (gdb) c
    Continuing.
    Hardware watchpoint 2: y
     
    Old value = 3
    New value = 6
    main () at main.c:6
    6 for (int i=0;i<10;i++){
     
     
    二、ddd,使用
    可以在选择行或某变量后,watch,break等按钮,很方便
    右中部的面板是一些流程调试

     图形方式调试
     
     
     


     
  • 相关阅读:
    BASE64
    2020-2021-1 20201217《信息安全专业导论》第二周学习总结
    师生关系20201217
    2020-2021-1 20201217王菁<<信息安全专业导论>>第一周学习总结
    作业正文(快速浏览教材提出问题)
    自我介绍20201217王菁
    罗马数字转阿拉伯数字(20201225张晓平)
    20201225 张晓平《信息安全专业导论》第三周学习总结
    20201225 张晓平《信息安全专业导论》第二周学习总结
    我期待的师生关系
  • 原文地址:https://www.cnblogs.com/qingchen1984/p/5515041.html
Copyright © 2020-2023  润新知