我正在调试的 MS VC++ 6.0 中有一些代码。出于某种原因,在我试图删除一些动态分配的内存的某个时刻,它中断了,我收到一个弹出消息框,上面写着“从代码中调用的用户断点”.. 然后弹出反汇编窗口,我看
*memory address* int 3
奇怪的是,在我调用这样的汇编指令的代码中没有任何地方(我认为 asm int 3 是 x86 的硬件中断命令?)..
是什么原因造成的?
编辑:回答:我的代码是“离开数组的末端”,但仅在 Visual Studio 调试标记的位置中使用 0xFDFDFDFD,称为 NoMan'sLand 围栏。我认为它也称为 Off-by-一个错误..这个数组与我在发生错误时释放内存的点无关。这使得它更难被发现.. :(