HI
我有很多年前写过的Delphi 7程序,但是我丢失了源代码。这是一个小程序,但对我来说非常有用。
我试图在新的Windows XP计算机中再次“安装”它,只是使用de data(.db paradox文件)复制文件夹,并配置了BDE连接。
当程序启动时,我收到“未知异常”并停止。我不知道为什么会这样,并且无法调试导致丢失的源代码。我在另一台计算机上尝试过相同的结果。
有任何建议或想法吗?在这样的情况下你做了什么?
提前致谢。
编辑: 当我在新的XP计算机中安装Delphi 7时,异常来自未知的已知。这是与Paradox.net文件的文件夹相关的东西。谢谢大家。
答案 0 :(得分:7)
Delphi IDE可以附加到正在运行的进程并对其进行调试(运行 - >附加到进程),虽然没有调试符号,但最终会调试普通的汇编程序代码,这需要一些汇编程序知识以及Windows应用程序的工作原理。如果调试器无法启动程序,调试启动异常可能会非常困难。您还可以使用Microsoft的WinDbg调试器。 有一些反汇编程序(我使用非常强大的IDA Pro)能够识别标准库调用,帮助分析很多。您也可以找到反编译器,尽管反编译本机应用程序比使用p代码之类的应用程序要困难一些。 如果错误不是由于配置错误造成的,那么修补二进制文件并不容易。
答案 1 :(得分:6)
您可以使用任何调试器(Visual Studio one或免费的OllyDbg),不知道Delphi IDE是否有简单的外部exe调试器。
但是,如果没有源代码,调试将非常困难,并且您必须至少具备汇编语言和win32api的基本知识。
或者您也可以使用FileMon& RegMon检查您的应用活动并发现潜在问题。
答案 2 :(得分:2)
您可以在Delphi IDE中尝试“运行|连接到进程...”。但是zed_0xff所说的关于没有消息来源的诽谤仍然适用。
答案 3 :(得分:2)
我会选择像ldsandon建议的反汇编方法,特别是因为你有(一些)知道你的exe正在做什么。 除了IDA Pro之外,还可以查看专门针对Delphi的工具,例如IDR(Interactive Delphi Reconstructor),DeDe和PE Explorer。
答案 4 :(得分:1)
为了确保它不与BDE相关,我会构建另一个基本的应用程序,试图访问这台机器上的相同数据。
一旦这个应用程序工作,你可以继续测试Pascal代码方面的事情
我已经分享了BDE的奇怪之处,所以我更愿意将其排除在外。