Здравствуйте, cadet354, Вы писали:
C>Доброго времени, C>вопрос по отладчику, возможно ли сделать следующее: C>поставить брекпоинт на функцию, и вызвать ее с F# interactive ?
Интерактивная консоль не связан с проектом ничем, кроме пункта меню Send To F# Interactive, который тупо отправляет выделенный текст, интерактив не имеет никакой связи с исходным кодом и проектом (мог бы хотя бы assembly reference подхватывать, но на этот случай мона юзать fsi-скрипт).
По-моему для отладки самой консоли + printf в нужных местах вполне достаточно...
П>Интерактивная консоль не связан с проектом ничем, кроме пункта меню Send To F# Interactive, который тупо отправляет выделенный текст, интерактив не имеет никакой связи с исходным кодом и проектом (мог бы хотя бы assembly reference подхватывать, но на этот случай мона юзать fsi-скрипт).
жаль, ИМНО было б удобно
П>По-моему для отладки самой консоли + printf в нужных местах вполне достаточно...
а по-моемому printf это вчерашний век, даже в аскетичном erlang это есть, хотя там с точки зрения отладки гораздо больше сделано, в .net еще пилить и пилить...
Здравствуйте, cadet354, Вы писали:
C>Здравствуйте, Пельмешко, Вы писали:
П>>Интерактивная консоль не связан с проектом ничем, кроме пункта меню Send To F# Interactive, который тупо отправляет выделенный текст, интерактив не имеет никакой связи с исходным кодом и проектом (мог бы хотя бы assembly reference подхватывать, но на этот случай мона юзать fsi-скрипт). C>жаль, ИМНО было б удобно
Как поставить breakpoint в текст, набранный прямо в интерактив?
Где показывать такой код при остановке?
П>>По-моему для отладки самой консоли + printf в нужных местах вполне достаточно... C>а по-моемому printf это вчерашний век, даже в аскетичном erlang это есть, хотя там с точки зрения отладки гораздо больше сделано, в .net еще пилить и пилить...
Да конечно это убоговатенько, просто даже если позволить подключаться к процессу interactive, откуда брать сорцы и pdb для отладчика?
П>Как поставить breakpoint в текст, набранный прямо в интерактив? П>Где показывать такой код при остановке?
как где, в том проекте с которым ты работаешь, хотя возможно я не правильно делаю, сначала в студии, потом отправляю в fsi, но без подсветки кода не удобно писать.
Здравствуйте, 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() при емите кода, тогда можно будет дебажить на уровне исходников...
Здравствуйте, Пельмешко, Вы писали:
похоже я не правильно объяснил чего хочу,я про встроенный в VS говорю.
Смотри есть модуль, есть функция которую я хочу отттестировать,ставлю там брекпоинт, а вызываю ее во встроенном.