2010-06-23 1 views
0

У меня есть визуальное приложение foxpro 6, которое висит (100% процессор). Process explorer и т. Д. Не указывают на какую-либо активность, поэтому она явно находится в каком-то виде.Висячие приложения visual foxpro - могу ли я использовать userdump/windbg?

Для приложения .net или C я бы взял дамп процесса, когда он подвешен, и определите, какой метод вызывает проблему. Можно ли использовать подобный метод с помощью foxpro или какие-либо рекомендации о том, как идентифицировать используемый метод?

У нас есть полный доступ к исходному коду и он может его перестроить. Но мы не можем воссоздать проблему на нашем объекте - мы видим, что это случается иногда у одного клиента.

+0

Если это происходит только на месте, скорее, это скорее экологическая проблема, чем приложение. Он постоянно держится в одном и том же месте? Что-нибудь в журнале приложений Windows? –

+0

Нет, это не похоже на то, что я хотел сделать что-то вроде того, что мы будем делать с нашими. NET-приложениями - идентифицировать трассировку стека, когда она была висела ... –

ответ

0

Я предполагаю, что у вас есть доступ к исходному коду. Можете ли вы реплицировать проблему во время отслеживания кода в отладчике VFP?

+0

yes - добавлено разъяснение к вопросу –

0

К сожалению, userdump и windbg не могут использоваться для отладки источника Foxpro. Вы можете отлаживать программы Visual Foxpro путем интерактивного запуска источника в среде IDE. Встроенный отладчик позволит вам пройти через код и посмотреть, что происходит - если вы можете дублировать его в среде test/dev. Как только в скомпилированной форме отладка становится очень сложной, если не невозможной.

Поскольку это происходит только на месте, лучшим вариантом является изменение источника для генерации журнала отладки - в основном запись в файл (STRTOFILE()) всякий раз, когда происходят ключевые события. Раньше у меня было несчастье такого рода проблем, и в то время это был самый эффективный вариант.