2013-08-26 35 views
1

我有我的電腦和mono-complete軟件包「Mono JIT編譯器版本2.10.8.1(Debian 2.10.8.1-1ubuntu2.2)」的Ubuntu 12.04 Linux。SIGSEGV和單聲道崩潰問題,同時運行使用單聲道的.NET二進制

我打算運行一個使用mono的.NET二進制文件,並在運行該二進制文件後獲得了SIGSEGV信號,然後單聲道將會崩潰。

我在命令提示符上也得到了一些gdb調試信息,我在下面提到。

線程2(線程0xb28ffb40(LWP 20460)):

#0 0xb7796424 in __kernel_vsyscall() 
#1 0xb77329db in read() from /lib/i386-linux-gnu/libpthread.so.0 
#2 0x080e18e7 in read (__nbytes=1024, __buf=0xb2e0867c, __fd=<optimized out>) at /usr/include/i386-linux-gnu/bits/unistd.h:45 
#3 mono_handle_native_sigsegv (signal=11, ctx=0xb2e08bcc) at mini-exceptions.c:2208 
#4 0x081209fc in mono_arch_handle_altstack_exception (sigctx=0xb2e08bcc, fault_addr=0x0, stack_ovf=0) at exceptions-x86.c:1223 
#5 0x0806094d in mono_sigsegv_signal_handler (_dummy=11, info=0xb2e08b4c, context=0xb2e08bcc) at mini.c:5909 
#6 <signal handler called> 
#7 0xb48881dc in ??() 
#8 0xb2bcba6b in bulk_interrupt_read_thread (arguments=0xb4888108) at testusb.c:1596 
#9 0xb772bd4c in start_thread() from /lib/i386-linux-gnu/libpthread.so.0 
#10 0xb766adde in clone() from /lib/i386-linux-gnu/libc.so.6 

線程1(線程0xb757a700(LWP 20449)):

#0 0xb7796424 in __kernel_vsyscall() 
#1 0xb765c690 in poll() from /lib/i386-linux-gnu/libc.so.6 
#2 0xb2c2c984 in ??() 
#3 0xb2c2bdb0 in ??() 
#4 0xb2c2e2d4 in ??() 
#5 0xb2c4e770 in ??() 
#6 0xb2c4b86c in ??() 
#7 0xb2c4b527 in ??() 
#8 0xb2e14518 in ??() 
#9 0xb2e139a8 in ??() 
#10 0xb2e13648 in ??() 
#11 0xb58e3f84 in ??() 
#12 0xb58e403e in ??() 
#13 0x08064c2c in mono_jit_runtime_invoke (method="GTechUtility.Program:Main()", obj=0x0, params=0xbfab491c, exc=0x0) at mini.c:5791 
#14 0x081a422f in mono_runtime_invoke (method="GTechUtility.Program:Main()", obj=0x0, params=0xbfab491c, exc=0x0) at object.c:2755 
#15 0x081a7025 in mono_runtime_exec_main (method="GTechUtility.Program:Main()", args=0x3be00, exc=0x0) at object.c:3938 
#16 0x080bb80b in main_thread_handler (user_data=<synthetic pointer>) at driver.c:1003 
#17 mono_main (argc=2, argv=0xbfab4ae4) at driver.c:1855 
#18 0x0805998f in mono_main_with_options (argv=0xbfab4ae4, argc=2) at main.c:66 
#19 main (argc=2, argv=0xbfab4ae4) at main.c:97 

========== ================================================== =====
在執行本機代碼時得到了一個SIGSEGV。
這通常表示單聲道運行時或您的 應用程序使用的某個本機庫中的致命錯誤。 ================================================= ================

中止(核心轉儲)

請讓我知道如果任何人對這個問題的想法。

+1

單聲道2.10.x已過時,請升級您的單聲道 – knocte

回答

0

嘗試此操作:在錯誤消失之前,禁用越來越多的自己的/應用程序代碼。然後用更小的步驟細化,看看代碼的哪一部分/哪一行導致了這一點。

如果最終沒有自己的/應用程序代碼,請使用您正在使用的庫的配置,版本,編譯器選項。

對不起,我不能給你一個詳細的答案,但我HTH。祝你好運!

+0

感謝您的回覆。我會按照您的指導進行嘗試,並儘快讓您知道結果。 –

+0

我得到了上述問題的解決方案,但我仍然懷疑爲什麼會發生這種情況?我將結構的引用傳遞給.NET二進制文件,並且每當我刪除該參數並根據該參數創建兼容的.NET二進制文件時,它就可以正常工作,而不會出現任何SEGV問題。 –