运行时无问题,调试时会报段错误。



  • 运行时无问题,调试时会报段错误。

    比较奇怪的是,运行时,无任何异常错误。但是调试的时候,就会报段错误。

    发生段错误的地方是一个析构函数,

    代码如下:

    delete d_ptr;
    

    d_ptr 是指向基类的指针。可能为 nullptr

    在调试过程中,变为 baadf00d。这是个 debug 魔幻数字,微软的LocalAlloc函数用该值标记为初始化过的已分配的堆内存。怪微软喽。

    0_1449561768498_upload-781c3fff-eaa7-4683-8331-4d985685051d

    一些参考文章

    一些debug常用的"魔法"数值



  • @qyvlik 可能是在调试的时候微软调用了调试的hook函数以及内存泄漏检查的函数。所以在析构的过程中会报错。这个是好事,督促检查错误。这个要好好看一下是否访问了悬指针。


 

走马观花

最近的回复

关注我们

微博
QQ群











召唤伊斯特瓦尔