
vscode C++报segmentation fault(gdb的某个bug)
解决方法很简单,取消相关变量的监视,自然就可以正确运行到下一条语句处
·
近几天大学研讨课开发一款简单编译器,调试C++时遇到的问题。
一般来说C++很容易报segmentation fault,但是一般会在某个地方停下,并且往往是因为空指针调用。这次debug的时候却总是突然遇到报seg fault但是却不停下,直接跳到另一端奇怪代码(甚至是自己写的),导致一直难以定位错误。并且往往是第一次debug时没有问题,后面再调试时就会出问题。换用clion调试也是如此。
最后发现原因其实很简单,因为gdb的监视窗口中的变量会提前算出,所以当出现段错误(其实还是空指针)时,变量会出现无法成功计算的情况,从而导致gdb不能正常跟踪。
解决方法很简单,取消相关变量的监视,自然就可以正确运行到下一条语句处(很久之前的bug今天想起来写一下博客,当时没有记录截图,请原谅我qaq)
)
更多推荐
所有评论(0)