zoukankan      html  css  js  c++  java
  • (转载)gdb反汇编

    (转载)http://blog.sina.com.cn/s/blog_65ad6e120100hjmt.html

    这里详细讨论一下disassemble/disass命令

     

    GDB文档:Debugging with GDB

     

    * 反汇编一个函数
    disass func_name

     

    *反汇编一段内存地址, 第1个参数是起始地址,第2个是终止地址
    disassemble 0×0 0×10

     

    info line 命令来映射一个源码行到程序地址,

    然后使用命令disassemble显示一个地址范围的机器指令。


    例1. 查看main函数从哪里开始

    (gdb) info line main
    Line 34 of “rank.c” starts at address 0×804847f
       and ends at 0×8048493 .

    例2. 
    (gdb) info line *0×804847f
    Line 34 of “rank.c” starts at address 0×804847f
       and ends at 0×8048493 .


    info line会修改 x/i 命令的默认的起始地址

     

    * disassemble 

    不带参数,默认的反汇编范围是 所选择帧的pc附近的函数
    单个参数, 就是pc, 当然也可以是函数名,因为函数名 也是一个 地址; 这样范围就是该pc附近的函数
    两个参数,就是内存地址范围

     

    * set disassembly-flavor intel  

    将汇编指令格式 设置为intel格式,默认是att
    (gdb) show disassembly-flavor
    The disassembly flavor is “att”.

     

    * 使用x查看反汇编指令
    x/3i $pc
    显示pc开始的3条指令

  • 相关阅读:
    享元模式及php实现
    共享内存
    LCD触屏驱动
    I2C驱动
    C++ & java小结
    使用GlobalKey启动APP
    socketpair通信
    inotify和epoll
    C语言之二叉树
    灯光系统
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3088770.html
Copyright © 2011-2022 走看看