zoukankan      html  css  js  c++  java
  • gdb 拾穗

    1,跳过某个特定信号

    (gdb) handle SIGPIPE nostop noprint pass

    2,break在特定的系统调用处

    (gdb) catch syscall 3

    3,遇到一个断点的时候执行一组commands

    (gdb) commands 1   #在断点1出现的时候执行下面一组命令

    > where

    > continue

    > end

    (gdb)

    4,遍历某个数据结构

    set $i=0

    while $i<6

     set $p=XX->list

     set $q=$p->next

     set $n=0

     while $p!=$q

      set $n=$n+1

      set $q=$q->next

      end

     p $n

     set $i = $i + 1

     end

     例2

    gdb> set $x=1
    gdb > set $addr=0x111120
    gdb > while $x < 168
    > x/32ag $addr
    > set $x = $x + 1
    > set $addr = *($addr)
    > echo "--- "
    > end
    gdb > 
     
    5,watch一块内存:watch *0xb424200
     
    6,disassemble/disass 查看当前指令处的汇编代码

    7,demangle 查看某变量的C++原始类名:

    (gdb) demangle _ZTVN6apsara5pangu19NormalFileChunkInfoE

    vtable for apsara::pangu::NormalFileChunkInfo

    8,

    查看宏的值:

    (gdb) info macro MACRO_NAME

    展开宏:

    (gdb) macro expand MACRO_NAME

    9,

    打印所有的线程栈:thread apply all bt

    查看当前栈桢的信息:Info frame

    查看所有集群器信息:info registers

    rsp  栈指针,指向栈顶

    rbp 栈桢开始处

    Rip 指令寄存器

    rax  返回值

    调用者的寄存器: %rbx, %rbp, %r12, %r13, %r14, %r15

    被调用者的寄存器: %rdi, %rsi, %rdx, %rcx, %r8, %r9

    参考:

    1,http://web.cecs.pdx.edu/~jrb/cs201/lectures/handouts/gdbcomm.txt

  • 相关阅读:
    Http的请求协议请求行介绍
    Http概述
    服务器返回的14种常见HTTP状态码
    Tomcat发布项目
    Tomca的启动与关闭
    TomCat概述
    PrepareStatement
    JDBC的工具类
    JDBC的异常处理方式
    ResultSet
  • 原文地址:https://www.cnblogs.com/cobbliu/p/7337428.html
Copyright © 2011-2022 走看看