• GDB常用调试命令(二)


      • GDB信号处理

          在GDB中使用handle命令定义一个信号处理。信号可以以SIG开头或不以 SIG开头,可以用定义一个要处理信号的范围(如:SIGIO-SIGKILL,表示处理从SIGIO信号到SIGKILL的信号,其中包括SIGIO, SIGIOT,SIGKILL三个信号),也可以使用关键字all来标明要处理所有的信号。一旦被调试的程序接收到信号,运行程序马上会被GDB停住,以供调试。其可以是以下几种关键字的一个或多个:

          nostop:
            当被调试的程序收到信号时,GDB不会停住程序的运行,但会打出消息告诉你收到这种信号

          stop:
            当被调试的程序收到信号时,GDB会停住你的程序

          print:
            当被调试的程序收到信号时,GDB会显示出一条信息

          noprint:
            当被调试的程序收到信号时,GDB不会告诉你收到信号的信息

          pass/noignore:
            当被调试的程序收到信号时,GDB不处理信号。这表示,GDB会把这个信号交给被调试程序会处理

          nopass/ignore:
            当被调试的程序收到信号时,GDB不会让被调试程序来处理这个信号

          查看有哪些信号被GDB检测:

            info handle/signals

      • 检测点(checkpoint)使用

          checkpoint使用

      • 跟踪点

           tracepoint:只跟踪记录信息而不会中断程序的运行。当程序是实时运行时,或者与其他的程序有交互时,调试者希望使用跟踪点监控程序而又不打断程序的运行。

          与断点相同的是,跟踪点会保存下在跟踪点时的一些内存信息供使用者查阅,例如数组或者对象;另外,tracepoints可以通过save命令保存,以方便使用者下次再次进入程序调试时不需要重设这些跟踪点。

  • 相关阅读:
    「笔记」高斯消元
    函数库
    数学公式杂记
    CF1290E Cartesian Tree
    洛谷 P4027 [NOI2007] 货币兑换
    审计ThinkCMF框架任意内容包含漏洞与复现
    PHP代码审计笔记(基础篇)--命令执行漏洞
    某校园缴费平台通用0day偶然发现之路
    【转】教育src挖掘经验
    近期学习文章的整理(超级干货总结分享)
  • 原文地址:https://www.cnblogs.com/coder-zyc/p/9640577.html
Copyright © 2020-2023  润新知