testbed踩坑笔记:没有打桩惹的祸?
生成的测试函数运行或者多次运行后出现:
terminate called recursively
甚至:
![core dump](https://i-blog.csdnimg.cn/blog_migrate/64ed5fb139e4dddb88830a9f5230078f.png)
gdb查看core文件后:
![gdb结果1](https://i-blog.csdnimg.cn/blog_migrate/7c0c8c1f93682071581aec9527b0ae68.png)
![gdb结果2](https://i-blog.csdnimg.cn/blog_migrate/acba755769c338f8a523ea66e25b720c.png)
初步判断是资源没有释放彻底,而且和mutex lock有关。
于是在生成的测试代码的main函数中注掉第一个用例以后的所有用例,对生成的结果做上述测试,然后挨着一个一个放开,重复上述过程。
最终发现和某个函数initFdbusServer有关:发现CBaseWorker成员的start()函数被调用没有打桩,于是打桩。重复上述问题,发现没有上述问题了。看来问题就出在这里。稍后继续深入了解背后的原因。