工作中遇到的问题:

在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需要修改该函数的返回值,

-------------------------------------------------------------------------------------------------------------------------------------

if(TRUE== m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen))

{

}
else
{ //g_MdsLogEvent(RUNLOG,"Skip_Pkt_Seq:%d, pktlen:%d",g_nInPktSeq, dwPacketLen);
g_nPktFromEthDropCnt ++;
g_nL2NotIPTraffic += dwPacketLen;

if(m_EtherDecode.m_uiPtlOverMAC == PID_ETHERTYPE_IPV6)
{
g_nPktFromEthDropCnt_IpV6++;
}
return ;
}

-----------------------------------------------------------------------------------------------------------------------------------------

方法:

1,在调试到该函数时, s    (step) 进入该判断条件函数;

2,disassemble            ----反编译一下当前函数

3,i r (info registers)    ----查看当前寄存器的值,主要是第一个,可能是eax,也可能是rax,,我的就是rax,,,记住是第一行寄存器里边存着的就是返回值;

4,寻找判断位置,在函数执行完时,查看寄存器的值,(函数体内)   i  r      ;

5,在函数返回前,,,,当前行为----     }     ,在此处修改寄存器的值, set $rax= 1     通过set命令修改寄存器的值,需要在寄存器前边加 字符$    ----一个shell 判断当前指向的标志

6,i f    修改完寄存器后查看修改情况;

7, n   或者   s        进入下一行调试,修改完成。

GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法的更多相关文章

  1. [sql]sql函数coalesce返回第一个非空的值

    下面来看几个比较有用的例子: 首先,从MSDN上看看这个函数的使用方法,coalesce函数(下面简称函数),返回一个参数中非空的值.如: SELECT  COALESCE(NULL, NULL, G ...

  2. JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集

    工具地址:https://github.com/BothEyes1993/bes-jstools bes-jstools 100多个基础常用JS函数和各种数据转换处理集合大全,此工具包是在 outil ...

  3. js进阶 12-8 如何知道上一个函数的返回值是什么(如何判断上一个函数是否执行成功)

    js进阶 12-8 如何知道上一个函数的返回值是什么(如何判断上一个函数是否执行成功) 一.总结 一句话总结:event的result属性即可. 1.event的result属性的实际应用场景是什么? ...

  4. Shell入门教程:Shell函数的返回值

    shell函数返回值一般有3种方式: 1.return语句(默认的返回值) shell函数的返回值可以和其他语言的返回值一样,通过return语句返回. 比如: #!/bin/bash functio ...

  5. Swift2.0语言教程之函数的返回值与函数类型

    Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...

  6. C++中函数的返回值

    原文 [ 函数的返回值用于初始化在调用函数处创建的临时对象.在求解表达式时,如果需要一个地方储存其运算结果,编译器会创建一个没有命名的对象,这就是 临时对象.temporary object ] -- ...

  7. Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器

    函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  8. java 一个函数EnumMap返回多个值

    java 一个函数如何返回多个值   在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!! 网上这个问题的解决方法: 1.使用map返回值:这个方法问题是,你并不知道如何返回值 ...

  9. 终于懂了:Delphi消息的Result域出现的原因——要代替回调函数的返回值!(MakeObjectInstance不会帮助处理(接收)消息回调函数的返回值)

    MakeObjectInstance应该不会帮助处理(接收)消息回调函数的返回值,可是有时候又确实需要这个返回值,这可怎么办呢?我是看到这段文字的时候,想到这个问题的: 当WM_PAINT不是由Inv ...

随机推荐

  1. Value和Object的区别

    在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setV ...

  2. 【codevs1034】 家园

    http://codevs.cn/problem/1034/ (题目链接) 题意 给出一张n个点的图,有m架飞船按照固定的航班运行,没单位时间移动一次,并且没收航班都有自己的容纳量.问从0号点将K个人 ...

  3. 【poj1386】 Play on Words

    http://poj.org/problem?id=1386 (题目链接) 题意 给出n个单词,判断它们能否首尾相接的排列在一起. Solution 将每一格单词的首字母向它的尾字母连一条有向边,那么 ...

  4. Oracle参数化查询

    Oracle参数化查询默认是根据顺序绑定的 select * from table where name=:p1 and (select id from table2 where name=:p1); ...

  5. MemberwiseClone和DeepClone

    文章转自:http://www.cnblogs.com/zhangji/archive/2011/02/23/1961897.html MemberwiseClone 方法创建一个浅表副本,具体来说就 ...

  6. WinRAR命令行

    用法: rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...> <@列表文件...> <解压路径\ ...

  7. Python学习资料汇总

    官方文档:https://docs.python.org/2.7/ Python标准库:http://7xo8t2.com1.z0.glb.clouddn.com/file/Python%E6%A0% ...

  8. oracle11g dataguard 安装手册(转)

    文章转自:http://www.cnblogs.com/tippoint/archive/2013/04/18/3029019.html 一.前言:   网络上关于dataguard的配置文章很多,但 ...

  9. bzoj2819 Nim

    题意:给定一棵带点权的树,每次询问用一条路径上的点玩Nim游戏先手是否必胜,支持单点修改. Nim游戏:所有堆的数目异或起来不为0时先手必胜,否则必败. 所以就是单点修改+路径异或和查询. 树剖一发, ...

  10. redis常用配置

    daemonize yes #是否以后台进程运行,默认为no pidfile /var/run/redis.pid #如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid ...