工作中遇到的问题:

在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. ECIF OCRM ACRM关系

    ECIF  :Enterprise Customer Information Facility 企业客户信息工厂: CRM:Customer Relationship Management 客户关系管 ...

  2. python time函数

    时间间隔是以秒为单位的浮点小数. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示. Python附带的受欢迎的time模块下有很多函数可以转换常见日期格式.如函数time.tim ...

  3. Maven项目自动生成mybaties配置文件

    1.把mysql-connector-java-5.1.31.jar包放到C盘的mysqljar文件夹下 2.在generatorConfig.xml文件中配置实体.dao.service等包 < ...

  4. js-JavaScript高级程序设计学习笔记7

    第十一章 DOM扩展 1.对DOM的两个主要的扩展是Selectors API(选择符API)和HTML5. 2.jQuery的核心就是通过CSS选择符查询DOM文档取得元素的引用,从而抛开了getE ...

  5. Mysql: ERROR 1030 (HY000): Got error 28 from storage engine

    今天帮同事解决一个问题的时候,遇到了下面的异常: ERROR 1030 (HY000): Got error 28 from storage engine 我们的数据库是mysql,我们的sql语句是 ...

  6. Axure7.0中文汉化语言包下载 axure汉化包

    Axure RP Pro 7.0 正式版 (兼容 6 版) 简体中文语言包 支持 Axure RP Pro 正式版 当前最新版本 7.0.0.3142 废话不多说,直接给下载地址: Axure7.0中 ...

  7. C中的字符串实例

    1.#include <stdio.h>#include <assert.h>size_t strlen(const char* s){    return ( assert( ...

  8. token生成过程

    客户端登录会拿到token,然后去登录游戏服务器 了解GUID 可以了解http://blog.sina.com.cn/s/blog_5c8d13830100gku3.html // obviousl ...

  9. e_msg_c_as_login_req 和 e_msg_c_as_login_if_no_register_req

    e_msg_c_as_login_req e_msg_c_as_login_if_no_register_req 这两条协议差不多 第一个就是纯粹的登录,验证密码 第二个游戏中游客模式,直接登录的模式 ...

  10. Ubuntu下apt-get命令详解

    在Ubuntu下,apt-get近乎是最常用的shell命令之一了,因为他是Ubuntu通过新立得安装软件的常用工具命令. 本文列举了常用的APT命令参数: apt-cache search pack ...