2016-07-01 9 views
0

Мой сценарий: я поддерживаю приложение VB6 в том месте, где я работаю, и за последние несколько недель он начал сбой чаще, чем когда-либо раньше. Он использует как базу данных локального доступа MDB, так и удаленную базу данных SQL Server для разных типов хранилищ. Хорошей новостью является то, что мы пишем приложение для замещения, новости группы, которые мне нужны, чтобы поддержать это в то же время, и поставщик давно ушел из этого мира.VB6 Debugging - compiled

Каким образом я мог бы попытаться диагностировать причину аварии? Например, до сих пор я пробовал трассировку ODBC (для компонента MDB), трассировку SQL Profiler и ProcMon на клиентском ПК.

Есть ли что-нибудь еще, что я мог бы попытаться выяснить, что приложение пыталось сделать во время сбоя?

+0

Он никогда не дает сообщений об ошибках? Просто висит или исчезает? Один пользователь или несколько? – topshot

+0

Он дает ошибки, которые слишком расплывчаты. Ошибки VB6 не отображаются, если они существуют. Несколько пользователей, каждый из которых имеет локальный MDB и центральный SQL – Paul

+0

Я бы заподозрил в доступе к коррупции, но вряд ли произойдет через несколько локальных баз данных. Это заставило бы меня подумать о недавнем обновлении, которое было развернуто на все больше и больше машин или какой-то новой сетевой проблемы на SQL-сервер, который не обрабатывается. Вы говорите, что ошибки VB6 не отображаются, но вы, по-видимому, видите «расплывчатые» ошибки, так что это такое? Все ли они Win 7 64 ПК? – topshot

ответ

1

Вы также можете начать работу в отладчике.

windbg или ntsd (ntsd - это консольная программа и, возможно, установлена). Оба они также относятся к средствам отладки для Windows.

Скачать и установить Средства отладки для Windows,

http://msdn.microsoft.com/en-us/windows/hardware/hh852363

Установите Windows SDK, а просто выбрать инструменты отладки.

Создайте папку с именем Symbols в C: \

Start Windbg. меню Файл - Символ Путь к файлу и введите

srv*C:\symbols*http://msdl.microsoft.com/download/symbols 

затем

windbg -o -g -G c:\windows\system32\cmd.exe /k batfile.bat 

Вы можете нажать F12, чтобы остановить его и kb покажет стек вызовов (g продолжает программу). Если есть ошибки, он также остановится и покажет их.

Тип lm в список загруженных модулей, x *!* в список символов и bp symbolname установить точки останова

Использование db address (как в db 01244, чтобы увидеть, что в этой памяти.

Если программирование в VB6 этот экологический переменная link=/pdb:none хранит символы в dll, а не отдельные файлы. Удостоверьтесь, что вы скомпилируете программу с помощью No Optimisations и поставьте галочку в поле «Создать символическую информацию отладки». На вкладке «Компиляция» в свойствах проекта.

+0

Мои извинения, я должен был быть более явным. У меня нет источника этого приложения, чтобы перекомпилировать его с помощью символов. – Paul

+0

Нет, но окна будут использовать свои собственные символы для своих собственных звонков. –

+0

Программа проводит 90% времени в коде Windows.Программа VB проводит большую часть оставшегося времени в среде исполнения VB. Поэтому ваш код составляет пару процентов от выполняемого кода. Символы доступны для среды исполнения VB. Windbg будет загружать символы для окон. Символы делают жизнь вдвойне проще, но не нужны. Кроме того, вы получите детали сбоя и ГДЕ, что он разбился. Существует мало шансов на успех, но ответит на ваш вопрос - * где он падает? *. –