Skip to content

Errors and Bug Reporting

Bhuvan Sharma edited this page Jun 24, 2020 · 1 revision

Errors and Bugs

The Phasar framework is still under development. Thus, it might contain errors that are (un)known to the developers. If you find an error please create an issue in our tracker on Github. The report should include at least a summary of what you were doing when you hit the error and a complete error message (if possible). We will try to fix bugs as quickly as possible. If you are familiar with program analysis and LLVM you are free to fix the bug, improve Phasar, and send a pull request.

Observations and Known Bugs

Runtime Stack Overflows

We experienced some segmentation faults caused by the OS's stack size limit when analyzing programs with more than ~ > 240 k IR instructions or ~ > 21 k call-sites. The limits can be check with

$ ulimit -a

In case you would like to analyze larger programs adjust the stack size limit to your needs e.g. set the limit to 16 MB:

$ ulimit -s 16777216

Problems When Statically Linking Against LLVM

When statically linking Phasar against LLVM users will encounter a runtime error similar to the following:

./phasar
: CommandLine Error: Option 'verify-dom-info' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options

The bug can be fixed by dynamically linking against the LLVM libraries. When installing Phasar using the bootstrap.sh script on Unix/Linus systems, LLVM will be automatically build in a shared library configuration. We are currently in the process of improving Phasar's library dependencies such that we will eventually support linking statically, too.

Error While Installing:

  • While installing phasar, you may encounter an error as following:
CMake Error at tools/llvm-shlib/CMakeLists.txt:44 (list):
  list sub-command REMOVE_DUPLICATES requires list to be present.

The bug can be fixed by doing the following:
In the phasar project directory, edit the CMakeLists.txt file using:

nano llvm-project/llvm/tools/llvm-shlib/CMakeLists.txt

Change list(REMOVE_DUPLICATES LIB_NAMES) to

if(LIB_NAMES)
list(REMOVE_DUPLICATES LIB_NAMES)
endif()
  • CMake Error: Target requires the language dialect "CXX17", but CMake does not know the compile flags to use to enable it.
    Solution: Install CMake>3.8

  • print_graph(): requires 2 argument, but 3 were given.
    Solution: Install boost>=1.63

  • errors related to gcc/g++:
    Try installing gcc-7 and g++-7