Mam nienormalny wyjątek w zestawie mono systemu Linux.
Unhandled Exception: System.ObjectDisposedException: The object was used after being disposed.
at System.Net.Sockets.Socket.ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e) [0x00000] in <filename unknown>:0
at cloudBus.TCPConnection.Receive () [0x0003d] in /home/xyz/cloudBus/TCPServer.cs:26
...
Chcę uzyskać numer wiersza i nazwę pliku dla ReceiveAsync. Kompilowałem z flagą -debug i wykonałem z --debug. Dostaję też pełny mono z Gita i ponownie go kompiluję, ale nie mogę uzyskać informacji o debugowaniu.
Jakiej opcji użyć, aby uzyskać informacje o wierszu wyjątku? Myślę, że jest to opcja mono make, ale nie mogę jej znaleźć.
Po znalezieniu spróbuję naprawić ten błąd, odtwarzalny tylko w systemie Linux i zgłoś poprawkę.
Odpowiedzi:
0 dla odpowiedzi № 1Mógłbyś zbuduj Mono ze źródła, jeśli chcesz śledzić ten problem w wersji git HEAD.
Z drugiej strony, Debian powinien mieć również dostępne wersje debugowania / rozwoju Mono, które dostarczą informacji o debugowaniu dla zainstalowanej wersji.
0 dla odpowiedzi nr 2
Znalazłem.
Aby zbudować framework z informacjami o debugowaniu, w pliku mono / mcs / build / config.make
dodaj linię
MCS_FLAGS = -debug
0 dla odpowiedzi № 3
W Debianie pakiet mono-dbg dostarcza informacji debugowania dla Systemu. *. Na swój własny kod spójrz informacje debugowania mono z wyjątkami na temat debiana? .