|
|
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
Может тоже кого тема заинтрересует. Есть ли тут люди, работающие на удалённого заказчика. У меня вот иногда возникают ситуации, когда приходится отлаживать программу при помощи заказчика по телефону (на месте всё работает, а там - увы...) Ясно-понятно, у заказчика нету VС, ни исходников, чтоб подебажить, да и если бы были - толку было бы немного. Я эту проблему пока решил так: ввёл режим дебага, в котором появляется маленькая панелька управления дебагом. При этом в коде расставлены мутехы и сообщения к ним - чего на данный момент программа сделала (в коде это одна строчка - удобно). Дальше прога стоит ждёт нажатия кнопки, по которой можно идти дальше. В этот момент, можно с помощью заказчика через телефон посмотреть, всё ли правильно сделела программа. И двигаться дальше. Кто как ещё эту ситуацию разруливает? С логами - понятно. А ещё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 11:43 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
бывает имеет смысл воспроизвести условия на отдельной, чистой ЭВМ (если есть конечно свободная). нужно создать аналогичные условия для программы (установленные программы, ОС, базы ит.д.) и попытаться воспроизвести ошибку. тогда ясно будет как ее решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 14:33 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
ИМХО, конечно, но заказчик не должен заниматься ни отладкой, ни выяснением причин ошибки. Хорошо тебе заказчик терпеливый попался. А чем тебе лог не нравится ? У меня, например, при возникновении ошибки пишется не только сам текст ошибки, но и стэк вызовов с аргументами. Если программа зависла, то тоже есть методы сохранения текущего состояния в лог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 17:22 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
2 Maratka: с машинами проблем нет, но, заказчиков много. На всех машин не наберёшься, и жаль времени инсталлировать целую машину. 2 Tracer: а можно по-подробнее про стек? :) У нас просто проблема с бета-тестерами. А у меня всё оттестировать времени не хватает. И все возможные ситуации просто охватить не удастся даже с бета-тестерами. К примеру, проект один работал в куче мест уже больше года, и вот недавно выловили новую ситуацию с неинициализацией сом-объекта. Лог мне не не нравится, он у меня есть. И часто спасал. Но программа по ходу создаёт много всяких разных вещей и потом после себя их убивает. Поэтому по логу оттестировать эти временные вещи не получится. Нужно программу останавливать и смотреть. Вот ещё бы во время остановки можно было бы делать дамп всех локальных переменных - это просто песня была бы! :) У меня есть идея, но она тяжелокодовая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 07:42 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
Про стэк примерно так : написана некоторая библиотека обработки ошибок, есть правила написания кода. Код выглядит примерно так - Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. В E_Entry для каждого треда сохраняется массив строк методов, в E_ExitEntry соотвественно удаляется. Если происходит какой нибудь exception, то в catch'e этот массив и скидывается в log файл. Выглядит примерно так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 09:48 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
2Tracer Да, все правильно - единственное - это стек вызовов - я так понимаю до него вам достучаться не удалось (т.е. написали свой аналог)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 10:15 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
2Tracer Еще вопрос - у вас есть разделение по потокам или все пишется в один файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 10:18 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
maratkaбывает имеет смысл воспроизвести условия на отдельной, чистой ЭВМ (если есть конечно свободная). нужно создать аналогичные условия для программы (установленные программы, ОС, базы ит.д.) и попытаться воспроизвести ошибку. тогда ясно будет как ее решить. Ты вкурсе нет, насчет очередности установки MSSQL сервера и офиса, если сначало поставить MSSQL, а потом офис, то MSSQL работать не будет(это и мелкософт признал). И ты думаешь что заказчик вспомнит что и в какой последовательности он ставил? CEMb Логи, логи и еще раз логи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 10:27 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
Да, все правильно - единственное - это стек вызовов - я так понимаю до него вам достучаться не удалось (т.е. написали свой аналог)? Да пришлось писать свой, поскольку иначе требовалась отладочная информация. Еще вопрос - у вас есть разделение по потокам или все пишется в один файл? Не понял вопроса, есть и разделение по потокам и все пишется в один файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 10:29 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
2 Tracer: Спасибо! У меня была подобная идея. Тока я хотел накатать макрос, в котором инкрементируется счётчик строк. (соответственно его надо вставить в каждую строку) Потом по сатсн - выдавать номер строки, где умерло. Потом была ещё совсем чудовищная идея - сделать надкомпилятор, который добавляет в код код, сохраняющий имена, типы и смещения локальных переменных. Типы можно попробовать динамически распознать(или нет?) 2 DJStealth: Логи не всегда помогают. Вот мой пример. Прога в процессе создаёт linked_server. Тут вот(до сих пор ещё с Glory не разобрался) надо проверить получил ли SQL-сервер доступ к ресурсу L_S или нет? Писать для этого внутри код для проверки - лень и код и так большой. К тому же это не единственная штука, которая потом убивается. Вобщем в лог всего не внесёшь. Но лог есть :) Он не может не быть! =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 08:24 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
автор2 Tracer: Спасибо! У меня была подобная идея. Тока я хотел накатать макрос, в котором инкрементируется счётчик строк. (соответственно его надо вставить в каждую строку) Потом по сатсн - выдавать номер строки, где умерло. А зачем так сложно ? Есть ведь __line__, и __file__ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 10:37 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
если это VC, то мы используем- - OutputDebugString()/TRACExxx (DEBUG) + DebugView (www.sysinternals.com) (это все же попроще будет, чем создавать собственные логи). - _ASSERTE(...) (позволяет фиксировать линию утверждения - это конечно в дебаг-версии также т.е. клиенту нужно поставлять дебаг.) - отладочные сообщения - это банальность. - посмотри - Керниган, Пайк "Практика программирования." - там неплохие главы про отладку-тестирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 10:45 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
Tracer Есть ведь __line__, и __file__ Не знал, не знал.. Круто.. Спасибо, век_живи_век_учись :) maratkaOutputDebugString Ага, тоже не знал, надо будет весь топик почитать! Спасибо, и сисинтерналс тоже гляну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 08:01 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 17:58 |
|
||
|
Удалённый дебаг у заказчика. По телефону/мэйлу/етс...
|
|||
|---|---|---|---|
|
#18+
Connection to server adam.stup.ac.ru failed (The server is not responding.) Давай так, в двух словах :) Я тут, похоже, последний день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 10:38 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32352349&tid=2035641]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 347ms |

| 0 / 0 |
