Coder Social home page Coder Social logo

liuml07 / giri Goto Github PK

View Code? Open in Web Editor NEW
131.0 13.0 32.0 2.37 MB

Dynamic Program Slicing in LLVM Compiler

License: Other

Shell 27.04% C 20.95% C++ 27.13% Makefile 13.08% M4 11.75% Dockerfile 0.04%
llvm compilers program-analysis instrumentation research-project

giri's Introduction

Giri: Dynamic Program Slicing in LLVM

Dynamic program slicing is a technique that can precisely determine which instructions affected a particular value in a single execution of a program. Giri implements dynamic backwards slicing in LLVM compiler.

License Build Status Current Release

Install

Usage

  1. Hello World!
  2. Example Usage

Please see our wiki page for more information.

Credit

This project was first developed by Swarup Kumar Sahoo, John Criswell, and Dr. Vikram S. Adve from UIUC. It was selected by the Google Summer of Code (GSoC) 2013, under its umbrella project LLVM. Mingliang Liu from Tsinghua University joined to improve Giri in June, 2013. It's an ongoing project and pull requests are heavily appreciated.

If you use Giri in your research project, please cite our work.

[1] Swarup Kumar Sahoo, John Criswell, Chase Geigle, and Vikram Adve. Using Likely Invariants for Automated Software Fault Localization. In Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS'13, New York, USA, 2013. ACM.

giri's People

Contributors

drsahoo avatar justme0 avatar liuml07 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

giri's Issues

docker pull liuml07/giri shows below error

Using default tag: latest
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/create?fromImage=liuml07%2Fgiri&tag=latest: dial unix /var/run/docker.sock: connect: permission denied

Function defination

Hello,

Why doesn't Giri include the function definitions inside the slice? Is there a parameter I need to pass to include function definitions?

Issue running Giri.

Hello!

I'm trying to use Giri. I compiled it on the Ubuntu 13.10 x86_64 platform. More precisely version 3.4 was compiled with the use of LLVM 3.4.2. And now I'm trying to feed the "Hello World" example from the wiki to the tracer tool and I get the following failure:

$ tracer -trace hello.bc

Attribute 'zeroext' does not apply to functions!
i32 (i32, i8*) @main
Broken module found, compilation aborted!
0 tracer 0x000000000059a335 llvm::sys::PrintStackTrace(_IO_FILE*) + 37
1 tracer 0x000000000059a793
2 libpthread.so.0 0x00007fe84bef8bb0
3 libc.so.6 0x00007fe84b135f77 gsignal + 55
4 libc.so.6 0x00007fe84b1395e8 abort + 328
5 tracer 0x000000000054c2b4
6 tracer 0x000000000054bd7b
7 tracer 0x000000000052bbac llvm::FPPassManager::runOnFunction(llvm::Function&) + 348
8 tracer 0x000000000052be2b llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9 tracer 0x000000000052c3a7 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 967
10 tracer 0x000000000052c6fa llvm::legacy::PassManager::run(llvm::Module&) + 10
11 tracer 0x0000000000449149 main + 5321
12 libc.so.6 0x00007fe84b120de5 __libc_start_main + 245
13 tracer 0x0000000000447bbd
Aborted (core dumped)

Could you please explain to me what I'm doing wrong? Is it because I did something wrong or version 3.4 is not compatible with LLVM 3.4.2? Thank you!

Regards,
Alexey

Is program slice executable?

Hello,
I was wondering whether the resulting program slice is executable or not. Once we apply slicing, is the result only the number of lines that affected the program statement or not?

install on Ububtu16.04

Is it can installed on ubuntu16.04?when I have a try,there are many problems!Can you help me?

compile issue

Hello, I'm the user of giri for my research.

When I compile, I have the following problem.

make[1]: Entering directory /home/parallels/giri/build/lib' /bin/sh: 1: /home/parallels/llvm-obj/Release+Asserts/bin/llvm-config: not found make[2]: Entering directory/home/parallels/giri/build/lib/Giri'
/home/parallels/giri/build/../Makefile.llvm.rules:986: *** llvm-config --libs failed. Stop.
make[2]: Leaving directory /home/parallels/giri/build/lib/Giri' make[1]: *** [Giri/.makeall] Error 2 make[1]: Leaving directory/home/parallels/giri/build/lib'
make: *** [all] Error 1
parallels@gomti-llvm:~/giri/build$ make DISABLE_ASSERTIONS=1
make[1]: Entering directory /home/parallels/giri/build/lib' make[2]: Entering directory/home/parallels/giri/build/lib/Giri'
make[2]: Nothing to be done for all'. make[2]: Leaving directory/home/parallels/giri/build/lib/Giri'
make[2]: Entering directory /home/parallels/giri/build/lib/Utility' make[2]: Nothing to be done forall'.
make[2]: Leaving directory /home/parallels/giri/build/lib/Utility' make[1]: Leaving directory/home/parallels/giri/build/lib'
make[1]: Entering directory /home/parallels/giri/build/tools' make[2]: Entering directory/home/parallels/giri/build/tools/PrintTrace'
make[2]: Nothing to be done for all'. make[2]: Leaving directory/home/parallels/giri/build/tools/PrintTrace'
make[2]: Entering directory /home/parallels/giri/build/tools/Tracer' llvm[2]: Linking Release executable tracer (without symbols) /usr/bin/ld: /home/parallels/giri/build/Release/bin/tracer: hidden symbol_ZN4llvm17DominatorTreeBaseINS_10BasicBlockEE16updateDFSNumbersEv' in /home/parallels/llvm-obj/Release/lib/libLLVMCore.a(Dominators.o) is referenced by DSO
/usr/bin/ld: final link failed: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [/home/parallels/giri/build/Release/bin/tracer] Error 1
make[2]: Leaving directory /home/parallels/giri/build/tools/Tracer' make[1]: *** [all] Error 1 make[1]: Leaving directory/home/parallels/giri/build/tools'
make: *** [all] Error 1

The hidden symbol problem happens... Do you know why?
I'm novice so if it is too basic, sorry.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.