Nếu tôi có điểm ngắt trong chương trình C# tôi rất thích sử dụng F # REPL để kiểm tra mã của tôi. Điều này có thể theo bất kỳ cách nào?Có cách nào trong Visual Studio 2012 để sử dụng F # REPL khi gỡ lỗi C#
Trả lời
Bạn có thể gỡ lỗi dự án C# bằng F # REPL - Tôi thực hiện khi gỡ lỗi các dự án thư viện F #, nhưng các ứng dụng/thư viện C# cũng sẽ hoạt động (tôi nghĩ).
Biên dịch dự án C# của bạn. Trong tương tác F #, tham khảo hội đồng C# bằng cách sử dụng chỉ thị #r
(xem bài đăng của ArthurFSharp). Chèn một điểm dừng ở đâu đó trong mã C# của bạn.
Trong Visual Studio, hãy truy cập Tools
->Attach to Process
. Tìm Fsi.exe
trong danh sách các quy trình và nhấp đúp vào nó; nếu bạn không nhìn thấy nó ở đó, hãy chắc chắn rằng quá trình Fsi đã được bắt đầu (chỉ cần nhấp vào bên trong cửa sổ tương tác F # nên làm điều đó).
Trong F # Tương tác, hãy thực hiện một số mã sẽ đạt đến điểm ngắt mà bạn đã đặt; trình gỡ lỗi nên dừng thực hiện trên điểm ngắt giống như bạn muốn. Miễn là trình gỡ lỗi không dừng lại trên một số điểm ngắt, bạn cũng có thể thực thi các mã khác từ bên trong FSI, ví dụ để thay đổi các thiết lập trong ứng dụng C# đang chạy.
QUAN TRỌNG: Hãy nhớ rằng Windows khóa lắp ráp bất cứ khi nào nó được tải vào quy trình. Điều này có nghĩa là bạn sẽ không thể biên dịch lại ứng dụng C# của bạn miễn là FSI đang mở! Tuy nhiên, khi bạn đã thực hiện một số thay đổi đối với ứng dụng C# và muốn biên dịch lại và bắt đầu thử nghiệm lại, chỉ cần nhấp chuột phải trong cửa sổ tương tác F # và nhấp vào 'Đặt lại phiên tương tác' trong menu ngữ cảnh. Quá trình này sẽ bị giết và khởi động lại, vì vậy bạn có thể bắt đầu lại từ đầu. (Nếu bạn quên khởi động lại quá trình FSI và cố gắng biên dịch lại ứng dụng của bạn, việc biên dịch sẽ mất nhiều thời gian hơn bình thường, sau đó bạn sẽ nhận được thông báo lỗi cho bạn biết trình biên dịch không thể ghi vào tệp đầu ra.)
Một cách dễ dàng hơn để đính kèm trình gỡ lỗi là gọi System.Diagnostics.Debugger.Launch() từ bên trong tập lệnh F #. –
Bạn cần đưa đường dẫn đến dự án của mình bằng cách sử dụng chỉ thị #I
sau đó bạn có thể tải bản lắp ráp của mình và sử dụng nó. Sau đó tải assembly (chỉ thị #r), mở vùng tên và sau đó có thể gọi các phương thức (và kiểm tra kết quả).
ví dụ:
using System;
namespace ConsoleApplication1
{
public class Program
{
static void Main(string[] args)
{
PrintMessage();
}
public static void PrintMessage()
{
Console.WriteLine("Hello World!");
}
}
}
Và trong F # Interactive:
> #I "full path to debug directory";;
--> Added 'full path to debug directory' to library include path
> #r "ConsoleApplication1.exe";;
--> Referenced 'full path to debug directory\ConsoleApplication1.exe'
> open ConsoleApplication1;;
> Program.PrintMessage();;
Hello World!
val it : unit =()
ps: cần phải biên dịch dự án của bạn đầu tiên.
Câu hỏi đặt ra là chèn một điểm ngắt trong C# và sau đó nhìn thấy trong F # REPL. Điều này là khó khăn hơn nhiều - thực tế nó sẽ có một số thủ đoạn đáng kể. –
- 1. Gỡ lỗi javascript trong Visual Studio 2012 khi sử dụng chrome hoặc firefox
- 2. sử dụng OpenSSL trong Visual Studio 2012
- 3. Visual Studio 2012 sẽ không cho phép tôi gỡ lỗi
- 4. c2664 trong Visual Studio 2012 khi sử dụng make_pair
- 5. Tôi có thể sử dụng F # trong Visual Studio Express 2012 cho Windows Desktop không?
- 6. Cách gỡ lỗi Ứng dụng Asp.Net Mvc trong Visual Studio 2012 từ máy tính từ xa
- 7. Làm cách nào để xem các luồng ứng dụng trong khi gỡ lỗi trong Visual Studio?
- 8. Cách tốt để gỡ lỗi lỗi thiết kế Visual Studio
- 9. Nhập Windows Forms (C#), Visual Studio 2012
- 10. Visual Studio đánh giá các thuộc tính trong khi gỡ lỗi trong C# như thế nào?
- 11. Làm cách nào để buộc ngoại lệ trong khi gỡ lỗi trong Visual Studio?
- 12. Làm thế nào để gỡ lỗi mã CUDA bằng cách sử dụng Visual Studio 2008?
- 13. Cách sử dụng chuyển đổi cấu hình Visual Studio 2010 khi chạy/gỡ lỗi cục bộ?
- 14. Chuyển đổi OCaml thành F #: Có một IDE OCaml với GUI gỡ lỗi như Visual Studio
- 15. Visual Studio: Chỉnh sửa tệp XAML trong khi gỡ lỗi
- 16. Cách gỡ lỗi một thư viện lớp trong Visual Studio
- 17. Visual studio + gdb gỡ lỗi từ xa
- 18. Gỡ lỗi F # trong Xamarin Studio 4.0.3 ném lỗi
- 19. Làm cách nào để sử dụng GDB trong Eclipse để gỡ lỗi C/C++?
- 20. Làm thế nào để chạy xunit trong Visual Studio 2012?
- 21. Gỡ lỗi Silverlight trong Visual Studio 2010 bị treo khi sử dụng bàn phím
- 22. Có cách nào để tắt Tìm nhanh trong Visual Studio 2012 không?
- 23. Visual Studio: chỉnh sửa xaml trong khi gỡ lỗi (không ngừng gỡ lỗi)
- 24. Cách gỡ lỗi chỉ một chuỗi trong Visual Studio
- 25. Làm cách nào để thay đổi màu đánh dấu trong danh sách lỗi Visual Studio 2012?
- 26. Cách gỡ lỗi Visual Studio trong 64 bit
- 27. F # có sẵn cho Visual Studio 2012 Express cho Máy tính để bàn
- 28. Kiểm tra Chạy/Gỡ lỗi trong Ngữ cảnh Hiện tại với Visual Studio 2012
- 29. Phạm vi mã của các hàm nội tuyến sử dụng F # trong studio trực quan 2012
- 30. Làm thế nào để có Visual Studio tự động tìm kiếm mã nguồn khi gỡ lỗi
Kiểm tra cửa sổ ngay lập tức trong Visual Studio. Nó không phải là F # REPL, nhưng nó khá hữu ích. –
Cửa sổ ngay lập tức trong C# hút khi bạn không thể sử dụng lambdas – bradgonesurfing
Yea, tôi đồng ý rằng điều đó rất bực bội. Nhưng tôi vẫn thấy mình sử dụng nó một số tiền hợp lý. –