使用mono运行.NET二进制文件时出现SIGSEGV和单声道崩溃问题

时间:2013-08-26 04:27:50

标签: c linux mono

我的PC上有ubuntu 12.04 Linux和单声道完整包“Mono JIT编译器版本2.10.8.1(Debian 2.10.8.1-1ubuntu2.2)”。

我将使用单声道运行一个.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 个答案:

答案 0 :(得分:0)

试试这个:禁用越来越多的自己的/应用程序代码,直到错误消失。然后使用较小的步骤进行细化,以查看代码的哪个部分/行是由此引起的。

如果最后,完全没有自己的/应用程序代码,请使用您正在使用的库的配置,版本,编译器选项。

对不起,我不能给你一个详细的答案,但我HTH。祝你好运!