Skip to content

seclab-ucr/LLift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

This repo contains all the code and test cases for the LLift project

For verification, we provide a docker image to run the program with several cases (a super set of Table 4 in the paper)

Quick Start

  1. set OPENAI_API_KEY in the docker-compose file with your own key.

  2. docker-compose build app to build image

  3. docker-compose up -d start the containers

  4. docker exec -it llift_ae_container /bin/bash to go to the container "app"

  5. cd /app/app to go to the project directory

  6. /bin/bash run_min_expr.sh to run the program

Expected result

The program will run for a while (30min), and then put back all the results to the database

connect to the database with the following configuration:

"host": "127.0.0.1",
"database": "ubidb1",
"user": "ubiuser1",
"password": "ubitect",
"port": 5433

(the port is weird, but it is the port we use in the docker-compose file)

And in the table "sampling_res", you can find the result.

The expected result should be:

expected result

focusing on the "must_init", it should be either empty or "something" (i.e., a varaible)

Note: the result may be slightly different due to the randomness of GPT-4

Run single case

use python run.py --id <n> --group <m> to run a single case, where n is the case number and m is the group number. The group number has the following rule:

  • 20: TP cases of UBITect, use for test (bug-50)
  • 3: selective cases for comparison (Cmp-40)
  • 11: random-1000
  • 2: a small subset of "20", for quick test

For Cmp-40. The id from -412 to -400 are 13 real bugs, and -626 to -600 are 27 false positives from UBITect.

About

The source code of project "LLift" (Enhancing static analysis with LLM)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages