• 《软件调试艺术》读后感四


    1、条件断点

          仅仅有符合某种条件时才在断点处停止。

    类似于监视点的工作方式,每当该变量的值发生变化时,监视点都会中断。条件断点仅仅会在怀疑有问题的代码处当变量呈现该怀疑值时才中断。

    设置条件断点:breakbreak-args if (conditon)如:break if (i==700) condition 6999

    条件能够是:

    1、         相等、逻辑和不想等运算符(<,<=,==,!=、,>。>=。&&,||等)如break 180 if string == null && I < 0

    2、         按位和以为运算符等(&,|,^。>>,<<等)如break test.c:34 if(x & y) == 1

    3、         算术运算(+,-,*。/,%)如break myfunc if i % (j + 3) != 0

        自己写的函数、或库函数经过链接之后都能够调用,比方在这样的环境中。能够用if strlen(mystring) == 0等作为推断,自己写的函数也是一个道理。

        正常断点是无条件操作,而条件断点是有条件操作,条件达到之后才干暂停。

    2、断点命令列表

    使用commands命令设置命令列表:

    Commandsbreakpoint-number

    ……

    commands

    ……

    end

    比如:

    $gdb Fibonacci

     break Fibonacci

     commands 1

     printf  “Fibonacciwas passed %d. ”, n

     end

    假设认为输出太冗余,能够使用silent命令,它须要在命令列表的第一个输入,使用GDB更安静地触发断点。

    如:

    command 1

    silent

    printf “…….”

    end假设命令列表中的最后一个命令是continue。GDB将在完毕命令列表中的命令后继续自己主动运行程序。

    3、宏的创建

        假设你的这些命令还会在其他程序中使用,那么你能够使用GDB中的define命令创建宏。

    创建宏print-and-go:

    define print-and-go=> 长久保存则将其放在.gdbinit文件里。

    printf $arg0,arg1

    continue

    end

    这里假设要给它传送參数,则參数之间没有不论什么的符号。查看宏使用show user命令,能够得到全部的宏列表。

  • 相关阅读:
    ie6,ie7,ie8 css bug兼容解决记录
    Python__基本文件操作
    冒烟测试、α测试、Beta测试、性能测试
    oracle的基本信息查询
    生成AWK快照的方法
    LR11补丁下载地址
    安卓入门程序《发短信》
    安卓按钮添加监听的三种方法
    用视图编辑字符串和与安卓权限
    安卓入门程序《打电话》
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7260621.html
Copyright © 2020-2023  润新知