悬挂 Visual FoxPro 应用程序 - 我可以使用 userdump/windbg 吗?
我有一个挂起的 Visual FoxPro 6 应用程序(100% CPU)。进程资源管理器等不指示任何活动,因此它显然处于某种循环中。
对于 .net 或 C 应用程序,我会在进程挂起时对其进行转储,并确定导致问题的方法。可以使用 Foxpro 完成类似的技术,或者有关如何识别所涉及方法的任何建议吗?
我们可以完全访问源代码,并且可以重建它。但我们无法在我们的工厂重现该问题 - 我们只在单个客户身上偶尔看到这种情况发生。
I have a visual foxpro 6 application which is hanging (100% CPU). Process explorer etc don't indicate any activity, so it is obviously in some kind of loop.
For a .net or C app I would take a dump of the process when it is hung, and identify which method is causing the problem. Can a similar technique be done using foxpro, or any advice on how to identify the method involved?
We have complete access to the sourcecode, and can rebuild it. But we are unable to recreate the problem at our facility - we only see this happen occasionally at a single customer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我在这里假设您可以访问源代码。您可以在 VFP 调试器中跟踪代码时重现该问题吗?
I'm presuming here that you have access to the source code. Can you replicate the issue while tracing the code in the VFP debugger?
不幸的是,userdump 和windbg 不能用于调试Foxpro 源代码。您可以通过在 IDE 中交互运行源代码来调试 Visual Foxpro 程序。内置的调试器将允许您单步执行代码,并查看发生了什么 - 如果您可以在测试/开发环境中复制它。一旦采用编译形式,调试即使不是不可能,也会变得非常困难。
由于这仅发生在现场,因此最好的选择是修改源代码以生成调试日志 - 基本上是在关键事件发生时写入文件 (STRTOFILE())。我以前曾不幸遇到过此类问题,这是当时最好的可行选择。
Unfortunately, userdump and windbg cannot be used for debugging Foxpro source. You can debug Visual Foxpro programs by interactively running the source within the IDE. The built in debugger will allow you to step through code, and see what is happening - if you can duplicate it in a test/dev environment. Once in compiled form, debugging becomes very difficult if not impossible.
Since this is only happening onsite, the best option is to modify the source to generate a debug log - basically writing to a file (STRTOFILE()) whenever key events happen. I've had the misfortune of this kind of problem before and this was the best viable option, at the time.