delphi – 如何在现场调试访问冲突?

该领域的应用程序间歇性地收到此消息:

我无法在我的机器上再现这个.我也追踪了我相信的相关代码,找不到任何访问未初始化的对象.

我从来没有必须处理这种问题.

我做了一个与madExcept的构建,不幸的是,该程序一旦捆绑就不会崩溃.

关于madExcept对EurekaLog的任何意见,找到这样的事情?我从来没有使用过FastMM.在他的情况下会有用吗? (Delphi 2010)在FastMM中设置任何建议的标志?任何其他建议?

解决方法

请注意您尝试阅读的地址非常低.这种错误几乎肯定意味着你尝试取消引用一个零指针,即使你找不到一个.

考虑到你对这个行为的描述,我怀疑你有一个内存踩踏 – 有些东西在指向一个对象的指针之上爆发一个零.当你改变的东西你移动的东西,踩踏移动到某个地方无害.

打开范围检查和溢出检查.

注意,违规对象的大小必须至少为3C0字节 – 这应该有助于缩小它,大多数对象将小于此值.

我以前做过的这样的错误,只有在现场才显示出来,就是把记录检查点放在 – 一堆显示某处的行中 – 一个简单的数字序列是可以的.找出什么号码显示,当它崩溃,你知道哪些检查点是最后执行.如果没有缩小到足够的程度,您可以重复该过程,现在已经缩小了.

相关文章

ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的功能是:将源操作数送到目的操作数中,即:...
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂...
API原型: Declare Function MoveFileEx& Lib "kernel32" Alias "MoveFileExA" (By...