Yeppp! を使用したアプリケーションがあります。SIMD ライブラリ。アプリケーションは C# で記述されています。Windows x86-32 および x86-64 で完全に動作します。ただし、Mono を使用して Raspberry Pi でアプリケーションを実行すると、次の例外が発生します (ARM の問題なのか、Mono の問題なのか、それ以外の問題なのかわかりません)。確認するためだけにルートとして実行しようとしましたが、同じ例外もあります。スタック トレースの「UnixLibraryLoader」の部分に気付いたので、Yeppp DLL (Yeppp.CLR.Bundle.dll) が実行可能ファイルと同じディレクトリにあることを確認しました。これは私のコードの問題ですか、それをコンパイルした方法ですか、それともライブラリの問題ですか?
Stacktrace:
at <unknown> <0xffffffff>
at (wrapper managed-to-native) Yeppp.UnixLibraryLoader.dlopen (string,int) <0xffffffff>
at Yeppp.UnixLibraryLoader.Yeppp.INativeLibraryLoader.LoadLibrary (string) <0x0002f>
at Yeppp.NativeLibrary..ctor (string,Yeppp.INativeLibraryLoader) <0x0006b>
at Yeppp.Loader.LoadNativeLibrary () <0x000db>
at Yeppp.Library.Init () <0x00027>
at <Module>..cctor () <0x0000b>
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>
at <unknown> <0xffffffff>
at SimdSpeedTest.Program.DisplayCpuFeatures () <0x00033>
at SimdSpeedTest.Program.Main (string[]) <0x000c7>
at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <0xffffffff>
Native stacktrace:
Debug info from gdb:
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0xb5b7b430 (LWP 2272)]
0xb6eabaac in waitpid () from /lib/arm-linux-gnueabihf/libpthread.so.0
Id Target Id Frame
2 Thread 0xb5b7b430 (LWP 2272) "mono" 0xb6ea9770 in sem_wait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
* 1 Thread 0xb6f80000 (LWP 2271) "mono" 0xb6eabaac in waitpid () from /lib/arm-linux-gnueabihf/libpthread.so.0
Thread 2 (Thread 0xb5b7b430 (LWP 2272)):
#0 0xb6ea9770 in sem_wait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1 0x001fff10 in mono_sem_wait (sem=0x2f523c, alertable=1) at mono-semaphore.c:119
#2 0x0017db28 in finalizer_thread (unused=<optimized out>) at gc.c:1073
#3 0x001625b4 in start_wrapper_internal (data=0xb0d8c8) at threads.c:643
#4 start_wrapper (data=0xb0d8c8) at threads.c:688
#5 0x001f5c30 in thread_start_routine (args=0xac86c0) at wthreads.c:294
#6 0x00204268 in inner_start_thread (arg=0xac86b4) at mono-threads-posix.c:49
#7 0xb6ea2c00 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#8 0xb6e0f728 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#9 0xb6e0f728 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0xb6f80000 (LWP 2271)):
#0 0xb6eabaac in waitpid () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1 0x000b2148 in mono_handle_native_sigsegv (signal=<optimized out>, ctx=<optimized out>) at mini-exceptions.c:2299
#2 0x00027af8 in mono_sigsegv_signal_handler (_dummy=11, info=0xbe9280e0, context=0xbe928160) at mini.c:6777
#3 <signal handler called>
#4 0xb6f6d754 in ?? () from /lib/ld-linux-armhf.so.3
#5 0xbe9284a0 in ?? ()
Cannot access memory at address 0x3000
#6 0xbe9284a0 in ?? ()
Cannot access memory at address 0x3000
Backtrace stopped: previous frame identical to this frame (corrupt stack?)