|
|
|
|
#1 |
|
Участник
|
Цитата:
Сообщение от konfet
Я локализовал то место в коде, которое в конечном счете инициирует ошибку, и куда выполнение при данном наборе условий по идее не должно "проваливаться".НО: код очень сложный, многоуровневый, этот набор условий - большой, воссоздать ситуацию и вычленить именно то условие или событие, которое привело к ошибке - трудно да и нет времени.
Если это - стандартный код (типа сопоставления или сводного), то вам можно только посочувствовать, если же код самописный... ну вы поняли Как писал Джон Роббинс в своей широко известной в узких кругах книге, лучший способ отладки - это вообще не доводить дело до отладки. Можно использовать, к примеру, контрактный подход и проверять пред-/пост-условия (см. также вспомогательные классы для этого). Это обычно позволяет быстро выявлять проблемы и не допускать распространения кривых данных по системе. "Минус" такого подхода в том, что его преимущества не даются бесплатно - требуются определенные трудозатраты на этапе написания кода, а если код уже написан, то придется его доработать напильником. Если сложность кода в том, что есть куча итераций обработки данных, в ходе которых состояния объектов и/или данные в таблицах меняются нетривиальным образом, то тут можно приделать некий код трассировки, который бы выводил куда-либо текущую информацию о наиболее важных объектах/таблицах (тем более если используются временные таблицы). Затем можно проанализировать трассировку и попытаться понять, что пошло не так.По-моему, в Аксапте штатно нет средств, позволяющих получить "снимок" всего состояния сессии, включая локальные переменные значимых и ссылочных типов каждого фрейма стека выполнения. В 4-ке работает Trace Parcer, но в вашем сценарии, я так понимаю, он не подходит (кажется, 4-ка еще не умеет циклически перезаписывать файл трассировки, ограничив его определенным размером). В общем, без доработки кода напильником с целью получения некой "телеметрии" тут, мне кажется, не обойтись.
|
|
|
|
| За это сообщение автора поблагодарили: MikeR (5). | |
|
|
#2 |
|
Снова балуюсь косаптой :)
|
Цитата:
так что отладчик в данной ситуации похоже единственный помощник. Цитата:
Сообщение от gl00mie
Как писал Джон Роббинс в своей широко известной в узких кругах книге, лучший способ отладки - это вообще не доводить дело до отладки. Можно использовать, к примеру, контрактный подход и проверять пред-/пост-условия (см. также вспомогательные классы для этого). Это обычно позволяет быстро выявлять проблемы и не допускать распространения кривых данных по системе.
В приложении толпой его авторов (стажеров одной из ведущих конс. фирм) просто навалена куча г-на, и никаких "классов проверок" в помине нет. Ладно. Попробую допилить инструмент, предложеннный Ace of database, если что получится - отпишусь сюда.
__________________
Бесты и регарды! |
|
|
|
| За это сообщение автора поблагодарили: Kabardian (1). | |
| Теги |
| debugger, отладка, отладчик |
|
|
|