调试
文章平均质量分 69
brk
[[ -n $tall_rich_handsome ]] || echo no
展开
-
用strace跟踪系统调用
之前有新同事在问,strace的时候怎么样过滤掉某些系统调用, 这里简单总结下,希望对新同事有参考作用 部分跟踪举例:1. 只跟踪epoll_wait和gettimeofday,其他系统调用通通过滤掉,可以这样: strace -e trace=epoll_wait,gettimeofday(逗号分隔)2. 过滤epoll_wait和gettimeo原创 2014-08-20 11:15:59 · 1930 阅读 · 0 评论 -
写时拷贝惹得祸
【问题表现】hydra cgi底层库取出来的参数不对 【问题定位】1. 确认是否库的问题check out hydra-release_src-3.10.0,拷贝问题参数到单元测试用例,编译运行,表现跟上面贴图一致,确认是库本身的问题。遗憾的是,cgi底层库单元测试本身的用例全都通过。2. 走查源码仔细确认检查,cgi底层库依赖hydra_u原创 2014-08-20 11:24:09 · 630 阅读 · 0 评论 -
tcp端口探测脚本 问题分析
【背景】最近在优化一个监控模块里面的dns解析功能,原来的做法是用旁路线程调用getaddrinfo去同步解析,解析实时性非常差,所以决定将解析改成异步执行。网上搜索了一些dns异步解析的库/接口, 大致有:getaddrinfo_a 、adns、c-ares、udns等等。这些库虽然功能相对比较全,但是在我的场景各种别扭或者低效,不能很好地满足我的需求:其实需求很简单,我就需要解析ipv4的原创 2014-09-05 15:55:35 · 1635 阅读 · 0 评论 -
udp connect偶发失败的问题定位
问题表现程序“重启”的时候偶发性失败,表现在udp connect失败,但是如果成功启动,则程序运行完全正常。 失败时出现coredump,表现为断言失败:(gdb) bt#0 0x00007ff031e28f45 in raise () from/lib64/libc.so.6#1 0x00007ff031e2a340 in abort () from/lib64/l原创 2014-10-10 17:26:22 · 2485 阅读 · 0 评论