Comments (9)
Hi,
That sounds like an issue specific to your application. Any chance you could share the executable with us so we can debug it?
Thanks
from mambo.
hi,lgeek. it's not the application's error. the application runs well on android or linux. but it will hang when use dbm mt
on android. it runs well on arm-linux using dbm mt
, mt
is the executable file name.
The application code is simple, just create two threads and use pthread_join to wait. the code here.
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
void print_message_func(void *ptr);
int main()
{
int tmp1,tmp2;
void *retival;
pthread_t thread1;
pthread_t thread2;
char *message1 = "thread1";
char *message2 = "thread2";
int ret_thread1,ret_thread2;
ret_thread1 = pthread_create(&thread1,NULL,(void *)&print_message_func,(void *)message1);
ret_thread2 = pthread_create(&thread2,NULL,(void *)&print_message_func,(void *)message2);
tmp1 = pthread_join(thread1,&retival);
tmp2 = pthread_join(thread2,&retival);
}
void print_message_func(void *ptr)
{
int i;
sleep(10);
}
i use cross-compile gcc aaarch64-linux-android-gcc -o mt mt.c
to compile the multi-threads appication mt.c, the ndk version is 20.
after several days' error location, i have found that when use strace to ngrab the syscalls strace -f dbm mt
on an android shell terminal, the error section of the log is this
---------------------------------------------------------android-strace partion
[pid 4995] munmap(0x7bfd5b0000, 16777216) = 0
[pid 4995] munmap(0x7bfd429000, 1601536) = 0
[pid 4995] munmap(0x7bfe5b0000, 26034176) = 0
[pid 4995] sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}, NULL) = 0
[pid 4995] munmap(0x7c00ded000, 20480) = 0
[pid 4995] set_tid_address(0) = 4995
[pid 4995] rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1 RT_2 RT_3], ~[KILL STOP RT_1 RT_2 RT_3 RT_4 RT_5], 8) = 0
[pid 4995] munmap(0x7c00df2000, 20480) = 0
[pid 4995] munmap(0x7c00df7000, 28672) = 0
[pid 4995] exit(0) = ?
[pid 4995] +++ exited with 0 +++
mmap(NULL, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7c00df7000
mprotect(0x7c00df7000, 4096, PROT_NONE) = 0
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7c00df7000, 4096, "thread stack guard") = 0
mmap(NULL, 20480, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7c00df2000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7c00df2000, 20480, "bionic TLS guard") = 0
mprotect(0x7c00df3000, 12288, PROT_READ|PROT_WRITE) = 0
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7c00df3000, 12288, "bionic TLS") = 0
clone(./strace: Process 4996 attached
<unfinished ...>
[pid 4996] futex(0x7c00dfd570, FUTEX_WAIT_BITSET_PRIVATE, 2, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid 4993] <... clone resumed> child_stack=0x7c00dfd4e0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7c00dfd500, tls=0x7c00dfd588, child_tidptr=0x7c00dfd500) = 4996
[pid 4993] sched_getscheduler(0) = 0 (SCHED_OTHER)
[pid 4993] futex(0x7c00dfd570, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 4996] <... futex resumed> ) = 0
[pid 4996] mmap(NULL, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7c00ded000
[pid 4996] mprotect(0x7c00ded000, 4096, PROT_NONE) = 0
[pid 4996] sigaltstack({ss_sp=0x7c00dee000, ss_flags=0, ss_size=16384}, NULL) = 0
[pid 4996] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7c00dee000, 16384, "thread signal stack") = 0
[pid 4996] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7c00ded000, 4096, "thread signal stack guard") = 0
[pid 4996] gettid() = 4996
[pid 4996] set_tid_address(0x7bfd424d60) = 4996
[pid 4996] futex(0xa8099640, FUTEX_WAIT_BITSET_PRIVATE, 16386, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid 4993] <... write resumed> ) = 53
[pid 4993] futex(0xa8099640, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 4996] <... futex resumed> ) = 0
[pid 4993] write(1, "syscall pre syscall number: 98 "..., 56 <unfinished ...>
[pid 4996] futex(0xa8099640, FUTEX_WAIT_BITSET_PRIVATE, 16386, NULL, FUTEX_BITSET_MATCH_ANYsyscall pre syscall number: 98 thread_data: 0x31a5000
<unfinished ...>
[pid 4993] <... write resumed> ) = 56
[pid 4993] futex(0xa8099640, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 4996] <... futex resumed> ) = 0
[pid 4993] futex(0x7bfd424dd8, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 4993] futex(0xa8099640, FUTEX_WAIT_BITSET_PRIVATE, 16386, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid 4996] <... write resumed> ) = 57
[pid 4996] futex(0xa8099640, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 4996] futex(0x7bfd424dd8, FUTEX_WAIT_BITSET_PRIVATE, 2, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Try again)
[pid 4993] <... futex resumed> ) = -1 EAGAIN (Try again)
[pid 4993] futex(0xa8099640, FUTEX_WAIT_BITSET_PRIVATE, 16386, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid 4996] futex(0xa8099640, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 4993] <... futex resumed> ) = 0
[pid 4996] <... futex resumed> ) = 1
[pid 4996] mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7c00dc4000
[pid 4996] futex(0xa8099640, FUTEX_WAIT_BITSET_PRIVATE, 16386, NULL, FUTEX_BITSET_MATCH_ANYsyscall pre syscall number: 98 thread_data: 0x31a5000
<unfinished ...>
[pid 4993] <... write resumed> ) = 56
[pid 4993] futex(0xa8099640, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 4996] <... futex resumed> ) = 0
[pid 4993] futex(0x7bfff7cd60, FUTEX_WAIT, 4995, NULL <unfinished ...>
[pid 4996] futex(0xa8099640, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 4996] mprotect(0x7c00dc4000, 4096, PROT_NONE) = 0
[pid 4996] sigaltstack({ss_sp=0x7c00dc5000, ss_flags=0, ss_size=32768}, NULL) = 0
[pid 4996] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7c00dc5000, 32768, "thread signal stack") = 0
[pid 4996] mmap(NULL, 16777216, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7bfee84000
[pid 4996] mprotect(0x7bff8bc000, 8192, PROT_READ|PROT_WRITE) = 0
[pid 4996] sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}, NULL) = 0
[pid 4996] munmap(0x7c00dc4000, 36864) = 0
[pid 4996] rt_sigprocmask(SIG_BLOCK, ~[RT_1 RT_2 RT_3 RT_4 RT_5], [RTMIN], 8) = 0
[pid 4996] munmap(0x7bfee84000, 16777216) = 0
[pid 4996] write(1, "Exit*** thread exit, thread_data"..., 44Exit*** thread exit, thread_data 0xfba58000
) = 44
[pid 4996] munmap(0x7bfaa58000, 16777216) = 0
[pid 4996] munmap(0x7bfa8d1000, 1601536) = 0
[pid 4996] munmap(0x7bfba58000, 26034176) = 0
[pid 4996] sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}, NULL) = 0
[pid 4996] munmap(0x7c00ded000, 20480) = 0
[pid 4996] set_tid_address(0) = 4996
[pid 4996] rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1 RT_2 RT_3], ~[KILL STOP RT_1 RT_2 RT_3 RT_4 RT_5], 8) = 0
[pid 4996] munmap(0x7c00df2000, 20480) = 0
[pid 4996] munmap(0x7c00df7000, 28672) = 0
[pid 4996] exit(0) = ?
[pid 4996] +++ exited with 0 +++
---------------------------------------------------------------------------android-strace-partion
from the log, i found that when the tid 4995 exit, the thread 4993 give a syscall [pid 4993] futex(0x7bfff7cd60, FUTEX_WAIT, 4995, NULL <unfinished ...>
and it's the last record of pid 4993, so i guess the tid 4993 isn's noticed when 4995 exiting, the 4993 pending all the time.
the same application compiled runing in arm-linux is well with no error, dbm mt
, the syscall strace is like this.
------------------------------------------------------------------------------------------arm-linux-strace
[pid 24801] futex(0xffff963312c0, FUTEX_WAIT, 24803, NULL <unfinished ...>
[pid 24803] madvise(0xffff95b31000, 8253440, MADV_DONTNEED) = 0
[pid 24803] write(1, "Exit*** thread exit\n", 20Exit*** thread exit
) = 20
[pid 24803] munmap(0xffff928b5000, 16777216) = 0
[pid 24803] munmap(0xffff940d6000, 1601536) = 0
[pid 24803] munmap(0xffff9425d000, 26034176) = 0
[pid 24803] exit(0) = ?
-----------------------------------------------------------------------------------------------arm-linux-strace
sorry that the binary file can't be uploaded, but you can compile the .c file, it;s the same.
i have no idea how to debug next, it's good on arm-linux, but the error above on android.
Thanks a lot.
from mambo.
it is the same error when run dbm geekbench_aarch64
, the strace is the same that the main thread wait for the first child thread to exit which has already exited.
the test is on android.
from mambo.
i tested that the dbm runs well when comment the line
tmp1 = pthread_join(thread1,&retival);
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba7d000, 12288, "bionic TLS") = 0
clone(child_stack=0x76cba874e0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x76cba87500, tls=0x76cba87588, child_tidptr=0x76cba87500) = 13932
./strace: Process 13932 attached
[pid 13931] sched_getscheduler(0 <unfinished ...>
[pid 13932] futex(0x76cba87570, FUTEX_WAIT_BITSET_PRIVATE, 2, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid 13931] <... sched_getscheduler resumed> ) = 0 (SCHED_OTHER)
[pid 13931] futex(0x76cba87570, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 13932] <... futex resumed> ) = -1 EAGAIN (Try again)
[pid 13932] mmap(NULL, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76cba77000
[pid 13932] mprotect(0x76cba77000, 4096, PROT_NONE) = 0
[pid 13932] sigaltstack({ss_sp=0x76cba78000, ss_flags=0, ss_size=16384}, NULL) = 0
[pid 13932] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba78000, 16384, "thread signal stack" <unfinished ...>
[pid 13931] <... futex resumed> ) = 0
[pid 13932] <... prctl resumed> ) = 0
[pid 13932] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba77000, 4096, "thread signal stack guard") = 0
[pid 13932] gettid() = 13932
[pid 13932] set_tid_address(0x76cac3fd60) = 13932
[pid 13932] futex(0x76cac3fdd8, FUTEX_WAIT_BITSET_PRIVATE, 2, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid 13931] futex(0x76cac3fdd8, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 13932] <... futex resumed> ) = -1 EAGAIN (Try again)
[pid 13931] <... futex resumed> ) = 0
[pid 13932] mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 13931] mmap(NULL, 1036288, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0 <unfinished ...>
[pid 13932] <... mmap resumed> ) = 0x76cba6e000
[pid 13932] mprotect(0x76cba6e000, 4096, PROT_NONE) = 0
[pid 13932] sigaltstack({ss_sp=0x76cba6f000, ss_flags=0, ss_size=32768}, NULL) = 0
[pid 13932] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba6f000, 32768, "thread signal stack" <unfinished ...>
[pid 13931] <... mmap resumed> ) = 0x76c7fef000
[pid 13931] mprotect(0x76c7ff0000, 1028096, PROT_READ|PROT_WRITE) = 0
[pid 13931] rt_sigprocmask(SIG_BLOCK, ~[RT_1 RT_2 RT_3 RT_4 RT_5], [RTMIN], 8) = 0
[pid 13931] rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
[pid 13932] <... prctl resumed> ) = 0
[pid 13931] mmap(NULL, 26033312, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 13932] mmap(NULL, 16777216, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 13931] <... mmap resumed> ) = 0x76c671b000
[pid 13932] <... mmap resumed> ) = 0x76c571b000
[pid 13931] mmap(NULL, 16777216, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76c471b000
[pid 13932] mprotect(0x76c5d44000, 8192, PROT_READ|PROT_WRITE) = 0
[pid 13931] mmap(NULL, 1600016, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76c4594000
[pid 13932] fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
[pid 13932] mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76c4394000
[pid 13932] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76c4394000, 2097152, "libc_malloc") = 0
[pid 13932] munmap(0x76c4394000, 2097152) = 0
[pid 13932] mmap(NULL, 4190208, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76c4195000
[pid 13932] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76c4195000, 4190208, "libc_malloc") = 0
[pid 13932] munmap(0x76c4195000, 438272) = 0
[pid 13932] munmap(0x76c4400000, 1654784) = 0
[pid 13932] mprotect(0x76c4200000, 4096, PROT_NONE) = 0
[pid 13932] mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76c4000000
[pid 13932] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76c4000000, 2097152, "libc_malloc") = 0
[pid 13932] ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
[pid 13932] write(1, "sleep..........................."..., 64sleep..........................................................
) = 64
[pid 13932] nanosleep({tv_sec=10, tv_nsec=0}, <unfinished ...>
[pid 13931] mmap(NULL, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x76cba67000
[pid 13931] mprotect(0x76cba67000, 4096, PROT_NONE) = 0
[pid 13931] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba67000, 4096, "thread stack guard") = 0
[pid 13931] mmap(NULL, 20480, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76cba62000
[pid 13931] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba62000, 20480, "bionic TLS guard") = 0
[pid 13931] mprotect(0x76cba63000, 12288, PROT_READ|PROT_WRITE) = 0
[pid 13931] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba63000, 12288, "bionic TLS") = 0
[pid 13931] clone(child_stack=0x76cba6d4e0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x76cba6d500, tls=0x76cba6d588, child_tidptr=0x76cba6d500) = 13933
./strace: Process 13933 attached
[pid 13931] sched_getscheduler(0) = 0 (SCHED_OTHER)
[pid 13933] mmap(NULL, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76cba5d000
[pid 13933] mprotect(0x76cba5d000, 4096, PROT_NONE) = 0
[pid 13933] sigaltstack({ss_sp=0x76cba5e000, ss_flags=0, ss_size=16384}, NULL) = 0
[pid 13933] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba5e000, 16384, "thread signal stack") = 0
[pid 13933] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba5d000, 4096, "thread signal stack guard") = 0
[pid 13933] gettid() = 13933
[pid 13933] set_tid_address(0x76c80e7d60) = 13933
[pid 13933] mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 13931] mprotect(0x76cfc26000, 4096, PROT_READ|PROT_WRITE <unfinished ...>
[pid 13933] <... mmap resumed> ) = 0x76cba54000
[pid 13931] <... mprotect resumed> ) = 0
[pid 13931] mprotect(0x76cfc26000, 4096, PROT_READ <unfinished ...>
[pid 13933] mprotect(0x76cba54000, 4096, PROT_NONE <unfinished ...>
[pid 13931] <... mprotect resumed> ) = 0
[pid 13933] <... mprotect resumed> ) = 0
[pid 13931] mprotect(0x76cfc26000, 4096, PROT_READ|PROT_WRITE <unfinished ...>
[pid 13933] sigaltstack({ss_sp=0x76cba55000, ss_flags=0, ss_size=32768}, <unfinished ...>
[pid 13931] <... mprotect resumed> ) = 0
[pid 13933] <... sigaltstack resumed> NULL) = 0
[pid 13931] mprotect(0x76cfc26000, 4096, PROT_READ <unfinished ...>
[pid 13933] prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x76cba55000, 32768, "thread signal stack" <unfinished ...>
[pid 13931] <... mprotect resumed> ) = 0
[pid 13933] <... prctl resumed> ) = 0
[pid 13933] mmap(NULL, 16777216, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76c3000000
[pid 13931] munmap(0x76cfc26000, 4096 <unfinished ...>
[pid 13933] mprotect(0x76c36d4000, 8192, PROT_READ|PROT_WRITE) = 0
[pid 13933] write(1, "sleep..........................."..., 64 <unfinished ...>
sleep..........................................................
[pid 13931] <... munmap resumed> ) = 0
[pid 13933] <... write resumed> ) = 64
[pid 13931] write(2, "We're done; exiting with status:"..., 35 <unfinished ...>
We're done; exiting with status: 0
[pid 13933] nanosleep({tv_sec=10, tv_nsec=0}, <unfinished ...>
[pid 13931] <... write resumed> ) = 35
[pid 13931] mprotect(0x76cfdc5000, 4096, PROT_READ|PROT_WRITE) = 0
[pid 13931] mprotect(0x76cfdc5000, 4096, PROT_READ) = 0
[pid 13931] munmap(0x76cfdc5000, 4096) = 0
[pid 13931] exit_group(0) = ?
[pid 13933] <... nanosleep resumed> <unfinished ...>) = ?
[pid 13932] <... nanosleep resumed> <unfinished ...>) = ?
[pid 13933] +++ exited with 0 +++
[pid 13932] +++ exited with 0 +++
+++ exited with 0 +++
so the error come from the futex(wait), or the inconnection between the futex(wake) and futex(wait).
please help.
from mambo.
@whcjb @lgeek I have the same issue. After some investigation, I think the problem may be at this line, we can't join a thread if it is not attachable?
from mambo.
Thanks both of you. @amimo that makes sense, but nevertheless I can't reproduce the behavior described here on GNU/Linux. I suspect it's a difference in Android's pthreads implementation compared to glibc, I'll take a closer look.
from mambo.
Since MAMBO is linked statically, it will be using the standard library of the system it's compiled on, not of the host machine. This zip archive contains the master head I've built on an Arch Linux ARM system. This executable is running the example provided by @whcjb (also compiled on Arch and linked statically) correctly on an Android device.
It would be useful to know if this MAMBO binary can run @whcjb's example compiled with the Android toolchain without hanging.
from mambo.
It would be useful to know if this MAMBO binary can run @whcjb's example compiled with the Android toolchain without hanging.
This MAMBO built can exit normally running @whcjb's example compiled with the Android toolchain.
from mambo.
Related Issues (20)
- SIGSEGV on up-to-date Arch Linux Arm systems on thread exit HOT 2
- Building with clang HOT 2
- Building on Android HOT 14
- drcov plugin
- Incorrect pcrel address calculation in Thumb HOT 4
- Segmentation fault on RPi 3 B (2018-11-13-raspbian-stretch) HOT 3
- Assertion error and Segmentation fault on docker containers HOT 2
- thumb_load_store_single_reg_imm12_32 caculate wrong instruction whem imm12 is less than 0x40 HOT 4
- Error compiling - cannot find pie/pie-arm HOT 2
- plugin compile errorerror: 'mambo_context' {aka 'struct <anonymous>'} has no member named 'read_address' HOT 3
- vcvtp instruction not handled HOT 1
- status flags currupted by inline hash lookup code HOT 4
- Is there any way to build Mambo as a Dynamic Linked Library?
- Continuous Integration (CI) HOT 1
- Unknown A64 instruction: 82 HOT 2
- Need help executing 32bit arm binaries on aarch64 HOT 3
- Unknown A64 instruction
- Segmentation fault when main thread finishes before its children
- ISPASS 2023 - MAMBO for RISC-V HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mambo.