我必须调试一个使用 Delphi CodeGear 2009 构建的应用程序,该应用程序是由我以外的其他人构建的,而这个人不再是公司的一部分。
奇怪的问题,当我将项目加载到代码设备并运行应该实际工作的软件时,我收到一个错误:
第一次机会例外,$753CB9BC。异常类异常,带有消息“创建共享内存时出错 Global\{B40FBC0C-FEBD-11DD-B3EA-FC6656D89593} (5)”。处理 OrderCenter.exe (836268)
我什至无法在逐步模式下运行该软件,它似乎发生在我进入运行的应用程序本身之前。我不知道如何修复这个错误,我当然可以查看代码并理解它,也许可以修改它,但我肯定完全不明白如何在没有任何 google 文档的情况下修复这样的错误。我尝试浏览 google 和 SO 一段时间,尝试各种关键字组合,但没有任何结果。
我该如何调试呢?我从哪里开始寻找?
编辑#1
为了澄清,我什至在进入应用程序之前就遇到了一个异常,它甚至无法调试。我很乐意尽快粘贴堆栈跟踪,以便每个人都可以看到它在哪里崩溃。很抱歉最初没有想到这一点。
我在 Google 上搜索了确切的错误消息,但没有发现任何有用的东西。这里有几个例子:
编辑#2
感谢您花时间指定某种初始化程序的人,我在所有文件中搜索并找到该程序并发现代码在这里崩溃:
if not AlreadyRunning(ProcessName, TFormMain, False, False, True) then
如果,我尝试查看这段代码的声明,它似乎确实在尝试创建一个全局共享内存对象,可能是某种互斥锁以防止双重初始化。
我的第一个猜测是,除了用户现在可以运行 2 个以上相同的应用程序这一事实之外,我可能只是放弃这部分代码而不会产生任何直接后果。
在旁注中,我想知道为什么这首先会失败(Win7,管理员帐户)?
PS:我最初无法找到错误发生位置的原因是因为应用程序处于发布模式而不是调试模式,我花了一些时间和深入的 UI 搜索在文件中的构建配置下注意到它经理。没有其他任何迹象表明我处于发布模式,直到我尝试在应用程序的初始化部分放置断点并且它不会停止......