我有一个挂起的可视 foxpro 6 应用程序(100% CPU)。进程资源管理器等不表示任何活动,因此它显然处于某种循环中。
对于 .net 或 C 应用程序,我会在进程挂起时转储它,并确定导致问题的方法。是否可以使用 foxpro 完成类似的技术,或者关于如何识别所涉及的方法的任何建议?
我们可以完全访问源代码,并且可以重建它。但是我们无法在我们的设施中重现该问题——我们只看到这种情况偶尔发生在一个客户身上。
我有一个挂起的可视 foxpro 6 应用程序(100% CPU)。进程资源管理器等不表示任何活动,因此它显然处于某种循环中。
对于 .net 或 C 应用程序,我会在进程挂起时转储它,并确定导致问题的方法。是否可以使用 foxpro 完成类似的技术,或者关于如何识别所涉及的方法的任何建议?
我们可以完全访问源代码,并且可以重建它。但是我们无法在我们的设施中重现该问题——我们只看到这种情况偶尔发生在一个客户身上。
不幸的是,userdump 和 windbg 不能用于调试 Foxpro 源代码。您可以通过在 IDE 中以交互方式运行源代码来调试 Visual Foxpro 程序。内置调试器将允许您逐步执行代码,并查看发生了什么 - 如果您可以在测试/开发环境中复制它。一旦以编译的形式进行调试,即使不是不可能,调试也会变得非常困难。
由于这仅在现场发生,因此最好的选择是修改源以生成调试日志 - 基本上是在发生关键事件时写入文件 (STRTOFILE())。我以前遇到过这种问题的不幸,这是当时最好的可行选择。
我在这里假设您可以访问源代码。您可以在 VFP 调试器中跟踪代码时复制该问题吗?