学习bind9源码之前,首先要知道如何用gdb来调试bind.BIND9的源码我是先看代码弄懂它的架构,像什么event-drive,epoll等, 再去看它的业务流程.看业务流程的时候要追踪它的数据流和处理过程,所以用gdb比较好,当然自己加日志再结合BIND9自有的日志也不是不 行,只是觉得这样更清晰. 编译bind的时候加的有-g和-O2选项,前者不用说了,后者很坑爹的,用gdb调试时会发现代码的实际执行顺序会有所改变,这是编译器的优化. 编译器的优化有三级,-O2就是二级优化的意思,扯远