C++ STL vector debug
有人说看STL没用,真的没用吗,到真正实践的时候,书到用时方恨少。
下面来聊聊Vector源码在实践场景中的用处吧。
问题
使用arrow project节点时,project阶段的schema里面的fields发生了变化,fields是一个vector节点,每个成员是std::shared_ptr<arrow::Field>
,对比前后的vector指针发现_M_impl
的_M_start
位置发生了变化,因此需要gdb watch其变化,查看何处改了它。
问题抽象为:
当vector的底层指针发生变化时,如何调试?
当vector的底层指针指向的值发生变化时,如何调试?