1. gdb調試時提示:<value optimized out> ,原因是memcache的編譯选项做了优化,修改configure中CFLAGS中的-O3为-O0,可以解决gdb调试过程中的一系列奇怪的问题。
(gdb) p a
$30 = <value optimized out>
参考:http://stackoverflow.com/questions/5497855/what-does-value-optimized-out-mean-in-gdb
2. memcache中item.refcount其实也是一个锁的作用,创建item的时候item_alloc初始化一个计数,删除时(从LRU链表hash中移除)do_item_unlink清除一个计数;任何人引用这个item时item_get会隐式计数加一,使用完后要显示调用do_item_remove减少引用计数; 最后一个导致引用计数为0的remove调用free这个节点;
3. make test失败提示Test:More.pm找不到是因为perl的Test:More模块找不到, 用cpan按照后即可;