Моя текущая работа - внедрять новые функции и поддерживать большую систему, реализованную в ocaml и C #. Большая часть «логики» реализована в caml, а графический интерфейс и доступ к данным - в C #. Методы отладки в значительной степени похожи на то, как вы описываете множество журналов и утверждаете, что выяснили, что пошло не так.
Кроме того, у нас есть большое количество модульных тестов, которые являются просто caml-скриптами для проверки логики и помогают обнаружить любые ошибки регрессии.
Мы также используем непрерывную интеграцию для проверки сборки и запуска сценариев ночного тестирования, в том числе некоторых автоматических тестирований GUI через наш интерфейс сценариев в стиле «автоматизации».
Я довольно часто использую отладчик C # для отладки части приложения на C #, отладчик ocaml все еще работает под окнами, поэтому мы его не используем. Хотя мы надеемся, что однажды мы сможем это исправить, но это не самое главное в нашем списке приоритетов. Иногда я использовал windbg для исследования проблем с управляемой и неуправляемой памятью, хотя это, как оказалось, вызвано сторонним компонентом, реализованным в C #.
Итак, в целом, ничего необычного, но, похоже, все работает хорошо, мы не видим слишком много производственных проблем.
Спасибо,
Rob