C++程序运行完成的最后d出触发了一个断点是什么情况?

C++程序运行完成的最后d出触发了一个断点是什么情况?,第1张

不知道你有没有搜携仔细看最后一张图右下稿漏唤角处,那里已经说明了原因。

Heap corruption detected: after normal block (#178) at xxxx

CRT detected that application wrote data to memory after end heap buffer.

简单翻译一下,就是你在new来的内存区域之外写入了数据。

你没有贴代码文本,我不会手敲它们,你可以自己检查这种情况。

举个例子,图2,46行:memset为t_size+1个键凯字节清零,然鹅你只为temp new了t_size个字节。

其他地方可能还有,请逐一排查。

设置断点是为了出错调试用的。

有一个程序出错了,大致猜出可能在某处会出错,就哗滑在那里下一个断点。调试程序,执行到那里,程序会停下来,这时可以检查各种变量的值,然后按步调试运行,观察程序的流向及各个变量的变化,便于快速排错。

扩展资料:

断点是一个信号,它通知调试器,在某个特定点上暂世友时将程序执行挂起。当执行在某个断点处挂起时,我们称程序处于中断模式, 进入中断模式并不会终止或结束程序的执行,执行可以在任何时候继续。

CPU有一个单独的执行序列,会一条指令一条指令的顺序执行,要处理类似IO或者硬件时钟这样的异步事件时CPU就要用到中断。硬件中断通常是一个专门的电信号,连接到一个特殊的“响应电路”上。

断点提供了一种强大的工具,能够在需要的时间和位置挂起执行。

参考资料来源:百度百科-断点 (调试乱返腊器功能之一)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12313620.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存