Comments (4)
Hi. I can't reproduce this. Could you post the complete log of your build? Here's mine:
[cosmin@alarm tmp]$ git clone [email protected]:beehive-lab/mambo.git
Cloning into 'mambo'...
Enter passphrase for key '/home/cosmin/.ssh/id_rsa':
remote: Counting objects: 1044, done.
remote: Total 1044 (delta 0), reused 0 (delta 0), pack-reused 1044
Receiving objects: 100% (1044/1044), 370.49 KiB | 456.00 KiB/s, done.
Resolving deltas: 100% (730/730), done.
[cosmin@alarm tmp]$ cd mambo/
[cosmin@alarm mambo]$ git submodule init
Submodule 'pie' ([email protected]:beehive-lab/pie.git) registered for path 'pie'
[cosmin@alarm mambo]$ git submodule update
Cloning into '/tmp/mambo/pie'...
Enter passphrase for key '/home/cosmin/.ssh/id_rsa':
Submodule path 'pie': checked out '82f3fb6c3d629dbaaee5180e495eeb4bbef1e231'
[cosmin@alarm mambo]$ make
MAMBO: detected architecture "aarch64"
PIE: detected architecture "aarch64"
make --no-print-directory ARCH=a64 pie
ruby generate_decoder.rb a64 > pie-a64-decoder.c
ruby generate_decoder.rb a64 header > pie-a64-decoder.h
gcc -c -Os -Wall -g -std=c99 pie-a64-decoder.c -o pie-a64-decoder.o
ruby generate_encoder.rb a64 > pie-a64-encoder.c
ruby generate_encoder.rb a64 header > pie-a64-encoder.h
gcc -c -Os -Wall -g -std=c99 pie-a64-encoder.c -o pie-a64-encoder.o
ruby generate_field-decoder.rb a64 > pie-a64-field-decoder.c
ruby generate_field-decoder.rb a64 header > pie-a64-field-decoder.h
gcc -c -Os -Wall -g -std=c99 pie-a64-field-decoder.c -o pie-a64-field-decoder.o
ruby api/generate_emit_wrapper.rb pie/pie-a64-encoder.c header > api/emit_a64.h
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -c -o elf_loader/elf_loader.o elf_loader/elf_loader.c
ruby api/generate_emit_wrapper.rb pie/pie-a64-encoder.c > api/emit_a64.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -static -ldl -Wl,-Ttext-segment=0xa8000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c elf_loader/elf_loader.o scanner_a64.c api/emit_a64.c pie/pie-a64-field-decoder.o pie/pie-a64-encoder.o pie/pie-a64-decoder.o -lelf -lpthread
traces.c: In function ‘scan_trace’:
traces.c:109:3: warning: implicit declaration of function ‘mambo_deliver_callbacks’ [-Wimplicit-function-declaration]
mambo_deliver_callbacks(POST_BB_C, thread_data, inst_type,
^~~~~~~~~~~~~~~~~~~~~~~
[cosmin@alarm mambo]$ grep -rnw . -e 'a64_decode'
Binary file ./dbm matches
./signals.c:129: decoder = (inst_decoder)a64_decode;
./signals.c:188: decoder = (inst_decoder)a64_decode;
./scanner_a64.c:349: a64_instruction instruction = a64_decode(read_address);
./scanner_a64.c:501: a64_instruction inst = a64_decode(read_address);
Binary file ./pie/pie-a64-decoder.o matches
./pie/pie-a64-decoder.h:89:a64_instruction a64_decode(uint32_t *address);
./pie/pie-a64-decoder.c:3:a64_instruction a64_decode(uint32_t *address) {
from mambo.
Sorry, after restarting my ssh connection, the issue is no longer reproducible.
Although now when I run ./dbm /bin/ls -a
after un-commenting the first line of makefile(PLUGINS+=plugins/branch_count.c
), the program just hangs there without any response
from mambo.
Sorry, I can't reproduce that either:
$ ./dbm /bin/ls -a
. dbm.h kernel_sigaction.h scanner_a64.c syscalls.h
.. dispatcher.c LICENSE scanner_arm.c test
api dispatcher.S makefile scanner_common.h traces.c
common.c elf_loader pie scanner_public.h util.h
common.h .git plugins scanner_thumb.c util.S
dbm .gitignore plugins.h signals.c
dbm.c .gitmodules README.md syscalls.c
We're done; exiting with status: 0
Thread: 6434
direct branches: 102,282
indirect branches: 2,928
returns: 5,527
Total:
direct branches: 102,282
indirect branches: 2,928
returns: 5,527
Would you mind opening a separate issue for the hang? If possible, let me know what distro and hardware you're using so I can try to reproduce it in a similar environment. Alternatively, you could compile with -O0 and attach gdb to see where it hangs.
from mambo.
Okay let me try to isolate the issue
from mambo.
Related Issues (20)
- 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
- cannot stop main thread when running on android HOT 9
- 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
- Simple multithreaded program hangs on RISC-V HOT 3
- MAMBO fails to build on Arch Linux HOT 1
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.