DomainMegaBot segmentation fault 分析
TECH

DomainMegaBot segmentation fault 分析

简介 之前用香菇肥牛写的DomainMegaBot扫域名 发现偶尔会出现段错误 很让人抓狂的事情 于是有了这次Debug 思路 一般段错误的情况就几种 1 访问地址不存在 2 访问系统保护的内存 3 访问只读内存 4 栈溢出导致其他数据损坏 段错误这种问题不是很好定位 如果处于多线程的程序中 不知道哪里会出问题 也很有可能线程之间相互影响导致的 这里就要说一个很重要的东西 叫做符号表 符号表怎么理解 可以理解为地址映射函数的一个表格 把这个东西导入到RAM中 模拟之前的环境 linux下可以用core dump 如果在arm一些芯片环境下没有环境 只能通过仿真器来控制芯片 进行程序模拟 有些仿真器可以直接dump ram 编译 gcc -g xxx xxx.c 段错误后 会生成一个core文件 加载到gdb进行调试 不难定位出 123行 read_size = recv(sock , buffer , sizeof(buffer) read_size 这个值是-1 向上继续追究 print输出 发现由于速度过快 被whois查询网站禁止了 解决方法 因为不是我的代码 所以不方便修改 修改思路是 1 加delay时间 2 备用源切换