zoukankan      html  css  js  c++  java
  • tcp报文莫名其妙丢弃的调试

      这段时间 tcp 本地lo 接口进程间通信 总是出现 tcp 三次握手 失败!! 同时前段时间驱动以及Tcp/ip 协议栈出现问题

      那怎样调试呢?目前 一般都是ftrace kprobe 

    在使用kprobe 过程中发现,kprobe 是对每条指令都可以hook,如果hook 每个函数的时候, 想知道被hook的这个函数传入的参数 以及值,但是kprobe 没有明确说明其参数回放在那个位置!!

    google 了一下 也就只有使用jprobe了!!!

    使用例子可以参考:内核samples/kprobes 目录;

    hook:ip_finish_output2 打印其堆栈以及skb 相关信息如下;

     可知 syn报文发出后 进入协议栈lo 最后进入ip_finish_output逻辑, 发现其 不是按照自己改动后的协议栈逻辑走的!! 

    很快就找到了异常逻辑点! 分析其逻辑代码去!!!!!

    PS:今天debug 应用层代码时, 发现一个宏 defined(__x86_64__)  对应x86_64 gcc 那么 arm -gcc 该使用什么宏表示呢?

    : gcc -E -dM - </dev/null  > filegcc  

    可以看到 gcc 中defined x86_64宏 

    所以要想知道arm-gcc里面使用那个宏表示arm64

    可以执行:arm-linux-gcc   -E -dM - </dev/null > arm-gcc-file

    http代理服务器(3-4-7层代理)-网络事件库公共组件、内核kernel驱动 摄像头驱动 tcpip网络协议栈、netfilter、bridge 好像看过!!!! 但行好事 莫问前程 --身高体重180的胖子
  • 相关阅读:
    SQL优化总结之一
    web前端扩展性知识点
    canvas
    开动大脑js小案例(有空就更新的那种)
    本博客在手,jQuery无敌
    小程序整理(持续更新)
    样式初始化代码
    ajax中的async
    跨域问题解决
    ES6学习笔记(持续更新中)
  • 原文地址:https://www.cnblogs.com/codestack/p/14465851.html
Copyright © 2011-2022 走看看