經過數小時的努力,我決定是時候發佈了。錯誤:在Mono上運行應用程序時出現SIGSEGV問題
我有一個很基本的C#Windows窗體應用程序,我可以在Windows上編譯並運行它。整個項目的目的是爲了在Pi上工作,所以我將項目移交給它並編譯。幾個小時後終於得到它編譯(發現我不得不引用MySql.Data.dll文件)編譯沒有錯誤!
但後來我跑
Mono Administration.exe
,我得到了這個巨大的錯誤,我能找到關於網上很少:
[email protected] /media/WAYNEIO/pi/ProjectNibiru/ProjectNibiru $ mono Administration.exe
Stacktrace:
at System.Drawing.Font.CreateFont (string,single,System.Drawing.FontStyle,System.Drawing.GraphicsUnit,byte,bool) <0x00143>
at System.Drawing.Font..ctor (string,single,System.Drawing.FontStyle,System.Drawing.GraphicsUnit,byte,bool) <0x0007f>
at System.Drawing.Font..ctor (string,single,string) <0x00057>
at (wrapper remoting-invoke-with-check) System.Drawing.Font..ctor (string,single,string) <0xffffffff>
at System.Drawing.SystemFonts.get_DefaultFont() <0x00073>
at System.Windows.Forms.Theme..ctor() <0x0002f>
at System.Windows.Forms.ThemeWin32Classic..ctor() <0x00013>
at System.Windows.Forms.ThemeVisualStyles..ctor() <0x00013>
at System.Windows.Forms.ThemeEngine..cctor() <0x0007f>
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>
at System.Windows.Forms.X11DesktopColors..cctor() <0x000bb>
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>
at System.Windows.Forms.XplatUIX11..ctor() <0x001af>
at System.Windows.Forms.XplatUIX11.GetInstance() <0x00073>
at System.Windows.Forms.XplatUI..cctor() <0x00157>
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>
at System.Windows.Forms.Application.EnableVisualStyles() <0x00023>
at ProjectNibiru.Program.Main() <0x0000b>
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>
Native stacktrace:
Debug info from gdb:
Cannot access memory at address 0x0
Cannot access memory at address 0x0
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0x4093b460 (LWP 2224)]
0x40085f30 in read() from /lib/arm-linux-gnueabihf/libpthread.so.0
Id Target Id Frame
2 Thread 0x4093b460 (LWP 2224) "mono" 0x40084d84 in [email protected]@GLIBC_2.4() from /lib/arm-linux-gnueabihf/libpthread.so.0
* 1 Thread 0x400cd000 (LWP 2223) "mono" 0x40085f30 in read() from /lib/arm-linux-gnueabihf/libpthread.so.0
Thread 2 (Thread 0x4093b460 (LWP 2224)):
#0 0x40084d84 in [email protected]@GLIBC_2.4() from /lib/arm-linux-gnueabihf/libpthread.so.0
#1 0x00195a40 in mono_sem_wait()
#2 0x000ea384 in ??()
#3 0x000ea384 in ??()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0x400cd000 (LWP 2223)):
#0 0x40085f30 in read() from /lib/arm-linux-gnueabihf/libpthread.so.0
#1 0x40085770 in __pthread_enable_asynccancel() from /lib/arm-linux-gnueabihf/libpthread.so.0
#2 0x00000000 in ??()
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Aborted
任何人都可以提供建議,爲什麼這可能出現的是,以及如何解決這個問題?
注意事項;無論我使用「Xbuild」還是使用「dmcs」進行編譯,或者在Windows中編譯並複製,都會發生這種情況。編譯一個基本的hello world腳本也可以正常工作,所以它可能與Windows.Forms或MySql.Data有關。 PI也在運行Debian。
更好的問題可能是,我如何在Linux – Wayneio
你可以用'單--trace'得到發生了什麼更好的主意調試SIGSEGV以下發現
答案。對於大多數細節,您需要帶有單聲道支持的'gdb'和帶有調試信息的單聲道庫。 – Jester