Tôi muốn biết liệu tôi có thể sử dụng trình biên dịch Mono như một dịch vụ hay không (xem here và here) trong bối cảnh gỡ lỗi để truy vấn/sửa đổi/trực quan hóa các đối tượng trong thời gian chạy trong trình gỡ lỗi. Hiện tại, mỗi this SO post Roslyn CTP không hỗ trợ tính năng này.Trình biên dịch Mono có thể được sử dụng trong một bối cảnh gỡ rối không?
Trả lời
Có, điều đó hoàn toàn có thể. Tôi không thể cho bạn biết chi tiết chính xác về cách thực hiện điều này, nhưng hãy xem MonoDevelop thực sự thực hiện ý tưởng của bạn kể từ v2.8 (hoặc có thể sớm hơn). Trong MonoDevelop, bạn có sẵn một REPL Pad, cho phép bạn nhập mã C# trong cùng một bối cảnh mà ứng dụng của bạn dừng lại vì một điểm ngắt. Tôi đã đính kèm một Ảnh chụp màn hình MD đơn giản trong chế độ xem gỡ lỗi và mở khóa REPL. Vì MD là mã nguồn mở, bạn có thể kiểm tra các nguồn đã được triển khai thực hiện như thế nào và loại bỏ các phần mà bạn cần.
Tuyệt vời, không có ý tưởng! Cảm ơn, David –
Btw, đã có một số cuộc thảo luận từ các anh chàng mono rằng nó sẽ là tuyệt vời để đính kèm REPL cho bất kỳ quá trình mono nhất định (mà nên có thể bởi vì softdebugger mono được nối vào máy ảo). IIRC đã có một số công việc được thực hiện về điều này. Có lẽ bạn có thể bắt kịp và hoàn thành các nguồn, đó sẽ là chính xác những gì bạn cần và bạn sẽ đóng góp cho mono;) – Dyna
Tôi nghĩ rằng nó nên khả thi vì Mono Soft Debugger là một phần của thời gian chạy Mono, do đó bạn có thể sử dụng "Debugger Agent":
Các đại lý debugger là một mô-đun bên trong thời gian chạy mono trong đó cung cấp dịch vụ gỡ lỗi để chương trình khách hàng.
Vì vậy, một giải pháp thay thế có thể đang cố gắng kết nối với Trình gỡ lỗi mềm Mono trong trình biên dịch của bạn dưới dạng dịch vụ (chạy trên thời gian chạy đơn).
Khi Trình gỡ lỗi đơn giản Mono được sử dụng trong MonoDevelop IDE bạn cũng có thể điều tra xem IDE này có thể được sử dụng cho những gì bạn đang tìm kiếm hay không.
- 1. Oracle SQL tạo một hàm - bối rối biên dịch lỗi
- 2. Gỡ lỗi sau khi chết của một chương trình được biên dịch bởi Mono AOT
- 3. Sử dụng System.Xml.Linq với trình biên dịch dòng lệnh mono
- 4. Có thể tắt cảnh báo trình biên dịch C4503 không?
- 5. Tại sao tôi không thể sử dụng chuỗi mới trong trình gỡ rối?
- 6. Có thể gỡ lỗi các assembly được biên dịch với Mono/XBuild bằng Visual Studio trên Windows không?
- 7. Sử dụng Biên dịch DLL hội tụ sẵn trong Mono?
- 8. Có thể AKKA remoted diễn viên được sử dụng trong bối cảnh bầy đàn p2p không?
- 9. Cảnh báo “Sử dụng không được khởi tạo” trong trình biên dịch g ++
- 10. Bạn có thể tìm ra trình biên dịch nào được sử dụng để biên dịch chương trình không?
- 11. Bối rối bối cảnh - Spring instantiating singleton beans hai lần
- 12. Cảnh báo: Lớp này có thể được sản xuất bởi một trình biên dịch bị hỏng
- 13. Trình gỡ rối Perl có thể lưu lịch sử ReadLine vào một tệp không?
- 14. Bối rối có nên sử dụng FREETEXTTABLE hoặc CONTAINSTABLE
- 15. Một số trình biên dịch PHP tốt có thể được sử dụng là gì?
- 16. NSManagedObjectNext bối rối
- 17. Tôi có thể gỡ lỗi một assembly được biên dịch không?
- 18. Sử dụng tính năng biên dịch mono aot/aot-full: không có gì xuất hiện?
- 19. Intel Xeon Phi có thể sử dụng được nếu không có một trình biên dịch Intel tốn kém không?
- 20. Có thể sử dụng tăng tốc GPU khi biên dịch nhiều chương trình trên trình biên dịch gcc không?
- 21. Trình biên dịch có trình biên dịch không?
- 22. Các vấn đề về trình biên dịch DMD Mono-D
- 23. Trình biên dịch/trình biên dịch/trình biên dịch C++
- 24. Nhận bối cảnh trong Dịch vụ
- 25. Trình biên dịch không cảnh báo về mất chính xác?
- 26. Trình biên dịch java nào được NetBeans sử dụng?
- 27. cách sử dụng "Chọn ứng dụng gỡ rối" và "chờ trình gỡ rối" tính năng mới trong đậu thạch?
- 28. Trán Python, làm thế nào để có được một trình biên dịch sẽ được sử dụng?
- 29. Cài đặt trình gỡ rối trình biên dịch Java Maven thành false không loại bỏ bảng số dòng?
- 30. Hành vi lạ của trình gỡ rối khi điều khiển #line được sử dụng
này nghe có vẻ hơi giống như những gì bạn có thể làm với vỏ REPL (csharp.exe hoặc gsharp.exe) – IanNorton
Không chắc tôi làm theo - Tôi muốn để có thể đặt một breakpoint trong mã của tôi trong khi gỡ rối (ví dụ như với Visual Studio) và thực hiện các câu lệnh kiểm tra trong vòng lặp REPL. Điều này có thể được thực hiện bằng cách nào đó với csharp.exe hoặc gsharp.exe? –