[F#] F# Interactive debug
От: cadet354 Россия
Дата: 22.09.09 08:11
Оценка:
Доброго времени,
вопрос по отладчику, возможно ли сделать следующее:
поставить брекпоинт на функцию, и вызвать ее с F# interactive ?
... << RSDN@Home 1.2.0 alpha 4 rev. 1231>>
Re: [F#] F# Interactive debug
От: Пельмешко Россия blog
Дата: 22.09.09 14:53
Оценка:
Здравствуйте, cadet354, Вы писали:

C>Доброго времени,

C>вопрос по отладчику, возможно ли сделать следующее:
C>поставить брекпоинт на функцию, и вызвать ее с F# interactive ?

Интерактивная консоль не связан с проектом ничем, кроме пункта меню Send To F# Interactive, который тупо отправляет выделенный текст, интерактив не имеет никакой связи с исходным кодом и проектом (мог бы хотя бы assembly reference подхватывать, но на этот случай мона юзать fsi-скрипт).

По-моему для отладки самой консоли + printf в нужных местах вполне достаточно...
Re[2]: [F#] F# Interactive debug
От: cadet354 Россия
Дата: 23.09.09 09:14
Оценка:
Здравствуйте, Пельмешко, Вы писали:


П>Интерактивная консоль не связан с проектом ничем, кроме пункта меню Send To F# Interactive, который тупо отправляет выделенный текст, интерактив не имеет никакой связи с исходным кодом и проектом (мог бы хотя бы assembly reference подхватывать, но на этот случай мона юзать fsi-скрипт).

жаль, ИМНО было б удобно

П>По-моему для отладки самой консоли + printf в нужных местах вполне достаточно...

а по-моемому printf это вчерашний век, даже в аскетичном erlang это есть, хотя там с точки зрения отладки гораздо больше сделано, в .net еще пилить и пилить...
... << RSDN@Home 1.2.0 alpha 4 rev. 1231>>
Re[3]: [F#] F# Interactive debug
От: Пельмешко Россия blog
Дата: 23.09.09 16:31
Оценка:
Здравствуйте, cadet354, Вы писали:

C>Здравствуйте, Пельмешко, Вы писали:


П>>Интерактивная консоль не связан с проектом ничем, кроме пункта меню Send To F# Interactive, который тупо отправляет выделенный текст, интерактив не имеет никакой связи с исходным кодом и проектом (мог бы хотя бы assembly reference подхватывать, но на этот случай мона юзать fsi-скрипт).

C>жаль, ИМНО было б удобно

Как поставить breakpoint в текст, набранный прямо в интерактив?
Где показывать такой код при остановке?

П>>По-моему для отладки самой консоли + printf в нужных местах вполне достаточно...

C>а по-моемому printf это вчерашний век, даже в аскетичном erlang это есть, хотя там с точки зрения отладки гораздо больше сделано, в .net еще пилить и пилить...

Да конечно это убоговатенько, просто даже если позволить подключаться к процессу interactive, откуда брать сорцы и pdb для отладчика?
Re[4]: [F#] F# Interactive debug
От: cadet354 Россия
Дата: 23.09.09 19:51
Оценка:
Здравствуйте, Пельмешко, Вы писали:


П>Как поставить breakpoint в текст, набранный прямо в интерактив?

П>Где показывать такой код при остановке?
как где, в том проекте с которым ты работаешь, хотя возможно я не правильно делаю, сначала в студии, потом отправляю в fsi, но без подсветки кода не удобно писать.
Re[5]: [F#] F# Interactive debug
От: Пельмешко Россия blog
Дата: 24.09.09 08:37
Оценка:
Здравствуйте, cadet354, Вы писали:

C>Здравствуйте, Пельмешко, Вы писали:


П>>Как поставить breakpoint в текст, набранный прямо в интерактив?

П>>Где показывать такой код при остановке?

C>как где, в том проекте с которым ты работаешь, хотя возможно я не правильно делаю, сначала в студии, потом отправляю в fsi, но без подсветки кода не удобно писать.


А если я снесу код в проекте? В интерактиве то он останется...
А если напишу код прямо в окно интерактива?

Сейчас глянул попристальнее на fsi.exe и обнаружил:
C:\Program Files\FSharp-1.9.6.16\bin>fsi /?
Microsoft F# Interactive, (c) Microsoft Corporation, All Rights Reserved
F# Version 1.9.6.16, compiling for .NET Framework Version v2.0.50727

Usage: fsi.exe <options> [script.fsx [<arguments>]]

                - CODE GENERATION -
--debug[+|-]                   Emit debug information (Short form: -g)
--debug:{full|pdbonly}         Specify debugging type: full, pdbonly. ('full'
                               is the default and enables attaching a debugger
                               to a running program)
--optimize[+|-]                Enable optimizations (Short form: -O)
--tailcalls[+|-]               Enable or disable tailcalls
--crossoptimize[+|-]           Enable or disable cross-module optimizations

К интерактиву получатся подключиться, и к консольному, и к интегрированному в VS, но толку от этого мало, так как исходный код нельзя показать (по крайней мере у меня не вышло). По идее осталось лишь предусмотреть запись всего засовываемого в интерактив кода во временный файл и вызовы il.MarkSequencePoint() при емите кода, тогда можно будет дебажить на уровне исходников...
Re[6]: [F#] F# Interactive debug
От: cadet354 Россия
Дата: 24.09.09 09:25
Оценка:
Здравствуйте, Пельмешко, Вы писали:
похоже я не правильно объяснил чего хочу,я про встроенный в VS говорю.
Смотри есть модуль, есть функция которую я хочу отттестировать,ставлю там брекпоинт, а вызываю ее во встроенном.
... << RSDN@Home 1.2.0 alpha 4 rev. 1231>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.