方法
gdb调试时,如下可以看到某一node节点数据,
(gdb)p *(rdatasetheader_t *)(((dns_rbtdb_t *)((dns_zone_t *) named_g_server->viewlist->head->zonetable->table->root->data)->db)->tree->root->down->data)
(gdb)x/32xb $1+1
说明:
第一个说明node节点,可以看到节点数据信息
第二个显示附属字段信息,即记录信息
分析
named_g_server->viewlist
是一个链表,保存相关的view,head指向了一个view
named_g_server->viewlist->head->zonetable->table->root->data
是一个zone组成的树结构中,data保存了zone,
**((dns_rbtdb_t )((dns_zone_t ) named_g_server->viewlist->head->zonetable->table->root->data)->db)
将zone->db转为对应的类型,可以分析rbtdb的内部数据
**((dns_rbtdb_t )