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

 

posted @   codestacklinuxer  阅读(172)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2020-03-01 nginx&http 第六章 http 协议学习 1
2020-03-01 nginx&http 第五章 https nonblock-fd 读写检测
点击右上角即可分享
微信分享提示