Hi all,
I just compiled the lastest version of LLDB on ubuntu. But when I executed the lldb
in the bin directory, it print the following and exit:
lldb: /home/szm/workSpace/studio/llvm/include/llvm/Support/CommandLine.h:673: void llvm:
:parser::addLiteralOption(const char*, const DT&, const char*) [with DT = llvm::ScheduleDAGInstrs* ()(llvm::MachineSchedContext); DataType = llvm::ScheduleDAGInstrs* ()(llvm::MachineSchedContext)]: Assertion `findOption(Name) == Values.size() && “Option already exists!”’ failed.
Aborted (core dumped)
And the same for lldm-mi.
Also, if I create a simple program that uses LLDB API and run it, it’ll complain that:
error while loading shared libraries: liblldb.so.3.7.0: cannot open shared object file: No such file or directory
But liblldb.so.3.7.0 exists, even if I copy the file to the same directory.
Hi Ziming,
Can you share your exact checkout and build steps as a script?
Vince
I build LLDB following this tutorial on the website.
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb
cd …/…
mkdir build && cd build
cmake …/llvm
make -j4
But while executing make, I encountered an error saying:
Python script sym-linking LLDB Python API
Program error: Invalid parameters entered, -h for help.
You entered:
[’–buildConfig=’, ‘–srcRoot=/home/szm/workSpace/studio/llvm/tools/lldb’, ‘–targetDir=/home/szm/workSpace/studio/llvm-build2/tools/lldb/source/…/scripts’, ‘–cfgBldDir=/home/szm/workSpace/studio/llvm-build2/tools/lldb/source/…/scripts’, ‘–prefix=/home/szm/workSpace/studio/llvm-build2’, ‘–cmakeBuildConfiguration=.’, ‘-m’] (-1)
make[2]: *** [lib/liblldb.so.3.7.0] Error 255
make[1]: *** [tools/lldb/source/CMakeFiles/liblldb.dir/all] Error 2
make: *** [all] Error 2
But the compilation can go on if I type make again.
Ziming
After a recent change, one is having to specify CMAKE_BUILD_TYPE explicitly:
cmake -DCMAKE_BUILD_TYPE=Debug ../llvm
Can you point out the change that caused that? I encountered the same issue and I’d like to take a look.
My guess would be the change that switched from shell scripts to python files to configure swig.
I think the problem is in source/CMakeLists.txt, specifically this line:
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/finishSwigWrapperClasses.py --buildConfig=${CMAKE_BUILD_TYPE} "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}/../scripts" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}/../scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}" -m
The problem is "--buildConfig=${CMAKE_BUILD_TYPE}". If CMAKE_BUILD_TYPE is not set, you call finishSwigWrapperClasses.py with "--buildConfig=", which breaks the script. In my local Windows build I changed CMAKE_BUILD_TYPE to CMAKE_CFG_INTDIR. I don't know if that's correct, but it fixed my build calling the swig scripts.
That’s strange. I personally don’t specify a value for CMAKE_BUILD_TYPE, but when I look in CMakeCache.txt, I still have this line:
CMAKE_BUILD_TYPE:STRING=Debug
Do you have this line in your CMakeCache.txt and still experience this assertion?