2010-09-06 21 views
16

Zacząłem badać niektóre pomysły w algorytmach wykorzystujących VS2010 i F # interaktywne.Jak używać punktów przerwania w F # interaktywny?

Tak więc stworzyłem kod DebugScript.fsx, napisałem tam kod i ostatecznie wysłałem go do F # Int, aby go przetestować.

W pewnym momencie muszę złapać błąd. Ale nie mogę umieścić punkt przerwania nawet w prosty for pętli:

for i in stringarray do 
    printfn "%s" i 

Kiedy naciskam F9, aby ustawić punkt przerwania, VS pokazać czerwone kółko ze znakiem ostrzegawczym. Wskazówką na to jest "Punkt przerwania nie zostanie aktualnie trafiony".

Zaprawdę, ja otwórz menu Debug -> Attach to Process ... -> Fsi.exe poprzednio

Próbowałem umieszczenie Debugger.Break() wewnątrz pętli, ale to jedyna linia gdzie debugger zatrzymuje się, dając mi żadnej opcji aby kontynuować linie debugowania wewnątrz pętli. Ja również nie mam żadnych zmiennych lokalnych dostępne :(

Może jestem brakuje czegoś oczywiste?

+0

'Debugger.Break()' prace dla mnie –

Odpowiedz

2

O ile mi wiadomo, nie ma sposobu, aby to zrobić. Zamiast tego będziemy chcieli użyć .fs i rozpocząć debugowanie go w Visual Studio zamiast:

1

Oprócz odpowiedzi na kvb: Można powiedzieć, że F # Interactive jest już rodzajem debuggera. Możesz podawać kod po linii (lub region po regionie) i wyświetlać Wyniki pośrednie Możesz również sprawdzić wartość powiązań, oceniając je w konsoli interaktywnej F #

0

interaktywny s do karmienia małych kawałków kodu i oceny wyników pośrednich, pomyśl o tym jako o testowaniu mikroskładnikowym. Miałem pewne sukcesy z używaniem nunit z f #, nie różni się to niczym od C#, ozdabiasz testfixture i testy przypadków w ten sam sposób i ładuje się. Miałem pewne problemy ze złożonymi trybami, w których nunit barfował, ale ogólnie rzecz biorąc, jest to lepszy sposób na przetestowanie kawałka kodu. również nie widziałem sposobu, aby wysłać przestrzeń nazw do interaktywnych, tylko moduły.

11

Nie można debugować kodu, który jest częścią skryptów, ale można debugować kod zewnętrzny przywoływany w skryptach, dołączając debugger do procesu Fsi.exe, jak opisano. Więc jeśli naprawdę chcesz debugować z interaktywnego okna nie chcąc napisać program konsoli, można utworzyć plik fs z funkcji debugowania oraz:

  1. Dołączanie debugera

  2. Albo

    • odniesienia plik Fs #load (*)
    • kompilacji kodu jako biblioteki i odniesienia uzyskaną z DLL #r
  3. ustawić punkt przerwania

  4. wywołania funkcji ze skryptu

(*) pracował na mojej instalacji VS Ultimate, ale nie byłem w stanie odtworzyć na innym komputerze z VS Shell zainstalować

8

w VS2015 jest teraz o wiele bardziej proste: w Narzędzia-> Option-> F # narzędzia -> F # interactive-> Debugging -> Włącz debugowanie skryptu = true

następnie zresetować se interaktywna ssion i kiedy chcesz prasowej debug CTRL + ALT + D i wysłać polecenie jak zwykle

(lub kliknij prawym przyciskiem myszy na pliku źródłowym i wybierz „debug w interaktywny”)

Powiązane problemy