Как отладить моно-приложение F#/Nemerle под Linux?
Недавно я обнаружил Nemerle и F#, но я не могу найти способ отладки своих приложений. В MonoDevelop 2.6 отсутствует поддержка Nemerle и F#, 2.4.2 и более ранних сбоев из-за установки более новой библиотеки gnome-sharp (я использую новейшую 64-битную версию Arch Linux kernel-3.0). Моно-отладчик командной строки отказывается начинать говорить "платформа не поддерживается". Поэтому несколько вопросов об этой ситуации:
Можно ли отлаживать моно приложения с помощью gdb, не переходя на низкоуровневый (внутри vm или около того)? Насколько удобно использовать F# REPL для интерактивной разработки без отладчика (по сравнению с Common Lisp или GHCi Haskell)?
4 ответа
Я использую интерактивную среду F# для написания кода F# большую часть времени. Даже в Visual Studio интерактивная среда F# (разумно) не поддерживает отладчик, поэтому я в основном полагаюсь на возможность легко запускать что-либо в интерактивном режиме и проверять, работает ли он - если это не так, обычно его легко разбить на подпрограммы. -компоненты, которые можно попробовать в интерактивном режиме. Самое замечательное в F# Interactive, по сравнению, например, с GHCi, это то, что вы можете использовать его для оценки практически всего - включая объявления типов.
Плагин F# для MonoDevelop 2.4 в настоящее время не поддерживает отладку скомпилированных приложений F#. Я смог использовать командную строку Mono отладчик (mdb
Я думаю), но это было на 32-битной системе.
Я не уверен, почему MonoDevelop неправильно выбирает символы отладки F#, так что это, скорее всего, какая-то базовая ошибка. Есть несколько людей, работающих над плагином F# для MD 2.6, поэтому мы надеемся, что скоро он будет доступен. Если бы кто-то хотел выяснить, почему отладка не работает, это было бы здорово...
Вы можете легко отлаживать Nemerle в MonoDevelop. Просто преобразуйте pdb в моно формат, используя инструмент pdb2mdb: http://www.mono-project.com/Guide:Debugger Чем просто отладить приложение, и вы получите правильные местоположения.
Мне даже удалось отладить компилятор Nemerle с помощью этого трюка.
Nemerle имеет отличную поддержку IDE под Windows с Visual Studio и #Develop, лучше, чем F#, но, насколько я знаю, для Linux ничего нет.
О Linux и Nemerle: Nemerle получил привязки Vim, Kwrite/Kate и некоторые другие редакторы получили поддержку Nemerle. Вы также можете добавить опцию компилятора для любых редакторов в Linux. Компилятор Nemerle просто работает!
Nemerle MonoDevelop поддерживается в разработке, но очень медленно. F# получил устаревшую поддержку MonodeVelop, как сказал @Tomas, но как насчет нового MonoDevelop? Блок питания? F# 3? Это сложная задача, я так думаю.
Nemerle - это проект OpenSource. И я не уверен насчет F# 3. Мне нравится F#, но он всегда стоит за рукой Microsoft. Вы можете попробовать оба.