powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему скомпилированный проект падает "молча"?
25 сообщений из 50, страница 1 из 2
Почему скомпилированный проект падает "молча"?
    #36292625
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, возникает ошибка типа "Divide by zero", "Subscript out of range" и т.п. По идее, скомпилированный проект в случае неперехватываемой ошибки выдает соответстующий msgbox, а потом падает. Но мой проект (довольно большой) падает сразу. Иногда на нем юзерконтролы покрываются мелкой сеточкой (так, как они делают в IDE, когда их редактируешь), иногда вылетает сразу, издав, впрочем, звук, назначенный на "восклицательный знак".

Есть идеи, почему так может быть? Больно неудобно ловить баги.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292727
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз сеточка, значит ошибка в контроле, который утаскивает за собой всю прогу. Ошибка в процедуре сабклассинга, поэтому сообщение не выводится.

Jah loves you.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292742
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала можно сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
Public Function WndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    On Error GoTo errh
    …
errh:
    TBProc = CallWindowProc(lPrevWndProc, hWnd, uMsg, wParam, lParam)
    If Err.Number <>  0  then MsgBox Err.Description
End Function
Jah loves you.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292746
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TBProc WndProc конечно.

Jah loves you.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292776
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Спасибо. Я тут почитываю вашу переписку с Дмитрий77, ругаетесь словом "сабклассинг", а я еще не врубился что это такое, никак не могу найти время нагуглить....


Соответственно, я не очень понял, куда запихать эту процедуру - к чему ее подключить?
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292823
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, чем мы занимались при добавлении скролла, и есть сабклассинг :) То есть установка оконной процедуры.
А то, что я написал выше, это образец ее оформления.

Jah loves you.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292831
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А к какому hwnd ее прикручивать? К hwnd всех контролов?
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292838
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что вместо многоточия?
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292877
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все остальное, что находится в процедуре.

Jah loves you.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292883
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА к какому hwnd ее прикручивать? К hwnd всех контролов?Кого ее? У вас уже все прикручено, раз уж падает, нужно только добавить указанные строчки в начале процедур и в конце.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36292892
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не-е-е-е..., чего-то мы друг друга не поняли....

То, что я пишу - никак не связано с прикрученным скроллом, оно было и раньше, когда я не перехватывал оконную процедуру.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293007
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно. Но все равно виноваты контролы.
Они в одной либе или разных? Если в одной, то лучше разделить на время, можно будет по сеточке локализовать глючный. Или выложите их здесь, если не жалко (вряд ли они представляют интеллектуальную ценность в отрыве от программы), поищу опасные участки. Или на почту.

Jah loves you.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293085
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Неееее.... Вопрос стоит совсем не так.

Проект развивается. Иногда модернизация приводит к глюкам в старом коде, иногда высвечивает ранее внесенные глюки, которые не проявлялись. Иногда глюки в новом коде. Это все явление нормальное и понятное. Пользователь делает действия, у него проект падает. Он приходит ко мне и говорит: я сделал такую-то последовательность действий. Я делаю эту же последовательность под IDE, получаю ошибку, нажимаю Debug, вызываю CallStack и решаю проблему.

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


Ситуацию с "молчаливым" падением пока не удалось воспроизвести на отдельной группе проектов. Контрол покрывается сеточкой, ошибка появляется, но проект остается и не падает. То есть в основном проекте я что-то где-то сделал так, что началось такое поведение, например что-то при загрузке. Впрочем, попробую все-таки локализовать методом итераций :)

Может я немножко не тем путем иду... Стандартная обработка ошибок в VB6 сделана неудобно, встроить ее в каждую процедуру автоматически сложно (с учетом того, что местами есть отлов, а в проекте только форм полторы сотни)....
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293120
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И даже без всяких юзерконтролов.
Кладу на одну из форм кнопку, которая делит на ноль.
Запускаю ехе, жму на кнопку - проект исчезает с характерным звуком
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293271
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ого. Это в чистом проекте? Переустанавливать студию пробовали?
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293278
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На чистом ТЕСТОВОМ проекте такого не происходит (соответственно, переустановка студии не причем).

Сейчас как раз занимаюсь тем, что, скопировав свой проект, выкидываю из него части, пытаясь довести до состояние чистого. Пока падает.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293282
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня пока с WM_(massages) игрался тоже через раз все падало (когда на message неправильно пытался реагировать), если это о том. И на тестовом проекте тоже. И если в в vb6 то вместе со студией. Так что надо аккуратней с этими WM_
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293356
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни за что не догадаетесь, Кто виноват!

Смотрите и удивляйтесь.

Однако, теперь очень остро и животрепещуще встает извечный вопрос - Что делать?
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293386
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня IDE останавливается с сообщением division by zero. И не падает.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293464
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналогично. Прога вылетает division by zero, но сам vb6 -нет.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293573
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyУ меня IDE останавливается с сообщением division by zero. И не падает.

Дмитрий77Аналогично. Прога вылетает division by zero, но сам vb6 -нет.

Эта.... ну вы немножко тему забыли

IDE не вылетает, а вы попробуйте ехе-шник собрать.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293591
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну падает хочется ему так, а нафига на 0 делить.
Вот так не падает...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Command1_Click()
Dim a As Integer
On Error GoTo V_Banju
a =  5  /  0 
Exit Sub
V_Banju:
MsgBox "Err #=" & Err.Number & ":" & Err.Description, vbExclamation, "V_bane"
End Sub
C WM_ точно также если падает, без сообщений.

Я в сомнит. не оч. нужных кодах(напр. form_resize) обычно ставлю resume next, ну не выполнится чего-то зато crash-а не будет.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293608
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Ну падает хочется ему так, а нафига на 0 делить.

Дмитрий, вы читаете только последнее сообщение в топике? Хорошо, я повторю:

Shocker.ProПроект развивается. Иногда модернизация приводит к глюкам в старом коде, иногда высвечивает ранее внесенные глюки, которые не проявлялись. Иногда глюки в новом коде. Это все явление нормальное и понятное. Пользователь делает действия, у него проект падает. Он приходит ко мне и говорит: я сделал такую-то последовательность действий. Я делаю эту же последовательность под IDE, получаю ошибку, нажимаю Debug, вызываю CallStack и решаю проблему.

...

Стандартная обработка ошибок в VB6 сделана неудобно, встроить ее в каждую процедуру автоматически сложно (с учетом того, что местами есть отлов, а в проекте только форм полторы сотни)....
Еще раз обращаю внимание - в проекте ТЫСЯЧИ процедур. Пройтись по всем и проставить on error нереально, с учетом того, что во многих процедурах есть свой on error. А ошибки могут возникнуть в довольно произвольных местах: может индекс вылететь за пределы массива, может ошибка при работе с базой возникнуть, опять же местами используются асинхронные вычисления, может где-то переполнение случиться, причем при очень специфической комбинации действий - всего не предусмотришь. А в проекте изначально не была заложена идеология - в каждую процедуру, пусть и состоит она из одной строки, класть обработчик ошибок. Поэтому речь сейчас идет не о том, как переписать проект , а как сделать так, чтобы пользователь увидел сообщение об ошибке. Это проблему решит в достаточно большой степени.

А на ноль я делю для того, чтобы вызвать ошибку. Это ТЕСТОВЫЙ проект, если вы не поняли, для демонстрации глюка . И "хочется" не ему, а, видимо, кулбару, так как если кулбар убрать, то все прекрасно работает.

Фух. Надеюсь - объяснил.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293620
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пройтись по всем и проставить on error нереальноБолее чем реально, работайте головой, а не руками, как говорил Скрудж Макдак. Открываем файл исходника, считываем текст, находим sub function или property, вставляем on error, находим соответствующий end, вставляем обработчик. Заодно проверяем, нет ли его уже. Примитивный скрипт, делов на полчаса с перекурами.
...
Рейтинг: 0 / 0
Почему скомпилированный проект падает "молча"?
    #36293621
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да читал я все, по крайней мере пробежался.
Ничего не сделаете скорее всего.
А даже если пользователь присылает вам картинку на 2 экрана с сообщением "/0"
Вы с ходу поймете что где не так в ваших 1500 функциях не видя места остановки?
Присылают мне напр. "ActiveX component can't create object" или "Automation error" и т.п.
Если соображу, то догадаюсь в чем дело...напр. у него net.framework не установлен... и shell запускающий C-шный екзешник сглючил, кот.в этом framework нуждается, только в msgbox даже системном это не напишется.
Так что разговор не о чем.

Вспомнилось...Была старая прога PCplus (досовская терминалка) , на так начиная с какого-то Pentium она стала ругаться и писать Division by zero при запуске (для примера). И все: отказались от нее в итоге.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему скомпилированный проект падает "молча"?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]