这是在两台运行Windows XP Pro SP3的机器上进行的,但它在Delphi IDE内外的开发机器上运行正常.
运行Windows XP专业版.在Delphi 2010下编译的exe.
当我运行exe时,我收到Windows报告错误"Neopos.exe遇到了问题,需要关闭.我们很抱歉给您带来不便"
我知道它正在以主窗体的形式创建.
Application.Initialize; //Runs this
Application.CreateForm(TfmMain, fmMain); //FAILS HERE
Run Code Online (Sandbox Code Playgroud)
它没有达到:TfmMain.FormCreate(Sender: TObject);主窗体中的过程,我不知道如何跟踪此错误并进行调试.
之间发生了什么:Application.CreateForm(TfmUDF, fmUDF);和procedure TfmMain.FormCreate(Sender: TObject)我的主要形式.
我如何跟踪这个以找出导致Windows错误的原因.
当然,Windows错误报告包含很长的信息列表.我在哪里可以查找原因或至少找出错误原因的线索.
这个错误现在已经停止了所有开发工作(并破坏了我的周末)所以我迫切需要解决这个问题.
最简单的方法是将MadExcept或JCL Debugger等产品包含到您的应用程序中,以获得失败点的完整调用堆栈(包括行号).几年前我们已经推出了自己的产品,在这样的情况下它已经得到了巨大的帮助.
另一种选择,但更麻烦的是从项目生成MAP文件,使用MAP2DBG生成.MAP文件,并使用Windows Debbuging Tools获取相同的信息.这种方法是一个很大更多的铁杆,只有明智的,如果你真的想学习了很多关于Windows调试的内部(并享受与神秘的工具工作).
另一种方法是使用远程调试从开发环境连接到失败的应用程序.仅在您对故障机器有相当大的控制权时才适用.