Comments (9)
Thanks for your issue report!
Let me ask you a few questions:
- What is your LLVM version?
- Did you set the appropriate CC, CXX, CFLAGS, CXXFLAGS and install the GOLD plugin?
- Does the compilation complete successfully?
- Is 'Ftarget.txt' empty?
- If yes, are 'BBnames.txt', 'BBcalls.txt', and 'Fnames.txt' empty as well?
- If not, can you grep for a target function name in the 'dot-files/callgraph.dot' and see if it exists?
from aflgo.
Thank you for your reply.
- aflgo-compiler 2.49b
- Yes.
tianyu@ubuntu-vm0:~/app$ echo $CC $CXX
/home/tianyu/aflgo/afl-clang-fast /home/tianyu/aflgo/afl-clang-fast++
tianyu@ubuntu-vm0:~/app$ echo $CFLAGS $CXXFLAGS
-targets=/home/tianyu/app/temp/BBtargets.txt -outdir=/home/tianyu/app/temp -fuse-ld=gold -flto -Wl,-plugin-opt=save-temps -targets=/home/tianyu/app/temp/BBtargets.txt -outdir=/home/tianyu/app/temp -fuse-ld=gold -flto -Wl,-plugin-opt=save-temps
- Yes.
- Ftargets.txt is not empty:
initialize_module
gen_client
initialize_module
gen_client
The exact problem is that we cannot find the target function in dot-files/callgraph.dot
.
from aflgo.
Can you report the output of the following commands?
clang --version
to check LLVM versionld -plugin /path/to/LLVMgold.so
to check whether Gold plugin works. The Gold plugin is used to generate the bitcode file (*.bc) for the compiled binaries. The bitcode file is used only to extract the callgraph. Once everything is integrated into a single LLVM pass, Gold and the generation of *.dot files will be redundant.grep initialize_module dot-files/callgraph.dot
. If empty,- can you try to locate the bitcode for the main binary (e.g.,
httpd.0.0.*.bc
), and - execute
opt -dot-callgraph <path-to-main.binary.bc> >/dev/null
? - This regenerates the callgraph.dot in the current folder:
grep initialize_module callgraph.dot
.
- can you try to locate the bitcode for the main binary (e.g.,
from aflgo.
I used libxml2 to make an example,but after I build libxml2,I found Ftargets.txt and BBcalls are empty
from aflgo.
Hi,
Can you please provide more information like what version of libxml2 you are testing and how do you specify the target(s) -- you test a specific patch or you set the targets manually?
You can check your "step*.log" and "state" files inside your temporary folder ($TMP_DIR) to see whether there is some trivial error there.
Please also report the output of the following commands:
- clang --version to check LLVM version
- ld -plugin /path/to/LLVMgold.so to check whether Gold plugin works. The Gold plugin is used to generate the bitcode file (*.bc) for the compiled binaries. The bitcode file is used only to extract the callgraph. Once everything is integrated into a single LLVM pass, Gold and the generation of *.dot files will be redundant.
Thuan
from aflgo.
from aflgo.
Hi Oscar,
Do you see any log file (step*.log) in your $TMP_DIR? If so, please share it with me for a quick look.
Thuan
from aflgo.
from aflgo.
Hi,
The targets can be generated automatically from code changes as shown in Readme.md. You can also specify targets manually or using some other tools -- a static analysis tool for example, just ensure that you follow the format as in BBtargets.txt.
Thuan
from aflgo.
Related Issues (20)
- Fail to build lua [lua.o: File format not recognized] HOT 1
- Can't test on aflgo on libxml2 HOT 4
- invalid syntax when execute gen_distance_fast.py HOT 1
- typo of AFLGO_PROFILER_FILE HOT 1
- Incorrect method of merge call graph HOT 2
- Some incorrect lines caused the script gen_distance_fast.py to abort.
- Can't build libxml2 HOT 1
- Function distance calculation differs from paper HOT 3
- Can afl-llvm-pass.so.cc:366 solve the same name issue of basic block? HOT 2
- Build sqlite by afl-clang-fast HOT 1
- Cannot observe the crash in simple C program HOT 1
- Build libxml2: C compiler cannot create executables
- cannot access 'TMP_DIR/dot-files': No such file or directory HOT 4
- How to direct to code in a shared library HOT 1
- Erros when generating distance file HOT 5
- Distance calculation optimization in distance.py
- Details about AFLGo for patch testing
- Troubles Encountered in Distance Calculation HOT 3
- Link DG with AFLGo HOT 12
- gen_distance_fast.py: error: Couldn't find any binaries in folder /home/chen/aflgo/libxml2. 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 aflgo.