0

It's my first time using codeql,the dir demo contains a simple cpp file,i tried to run a demo like this codeql database create ./demo-db -s . --language=cpp . However,it ran into issue,here are the outputs:

➜ codeql-learn codeql database create ./demo-db --language=cpp --source-root ./demo
Initializing database at /home/russ/codeql-learn/demo-db.
Running build command: [/home/russ/.app/codeql-home/codeql/cpp/tools/autobuild.sh]
[2023-04-05 22:32:08] [build-stderr] + export AUTOBUILD_ROOT=/home/russ/.app/codeql-home/codeql/cpp/tools
[2023-04-05 22:32:08] [build-stderr] + AUTOBUILD_ROOT=/home/russ/.app/codeql-home/codeql/cpp/tools
[2023-04-05 22:32:08] [build-stderr] ++ mktemp -dt autobuild.XXXXX
[2023-04-05 22:32:08] [build-stderr] + export AUTOBUILD_TMP_DIR=/tmp/autobuild.I0CC9
[2023-04-05 22:32:08] [build-stderr] + AUTOBUILD_TMP_DIR=/tmp/autobuild.I0CC9
[2023-04-05 22:32:08] [build-stderr] + export VERBOSE=1
[2023-04-05 22:32:08] [build-stderr] + VERBOSE=1
[2023-04-05 22:32:08] [build-stderr] + export CCACHE_DISABLE=1
[2023-04-05 22:32:08] [build-stderr] + CCACHE_DISABLE=1
[2023-04-05 22:32:08] [build-stderr] + . /home/russ/.app/codeql-home/codeql/cpp/tools/lib/dirs.sh
[2023-04-05 22:32:08] [build-stderr] ++ EXTRACTOR_DIRS=(TRAP SCRATCH DIAGNOSTIC SOURCE_ARCHIVE)
[2023-04-05 22:32:08] [build-stderr] ++ AUTOBUILD_TRIED_STEPS=/tmp/autobuild.I0CC9/tried_steps.txt
[2023-04-05 22:32:08] [build-stderr] + trap cleanup EXIT
[2023-04-05 22:32:08] [build-stderr] + /home/russ/.app/codeql-home/codeql/cpp/tools/do-prebuild
[2023-04-05 22:32:08] [build-stderr] + . /home/russ/.app/codeql-home/codeql/cpp/tools/lib/build.sh
[2023-04-05 22:32:08] [build-stderr] ++ . /home/russ/.app/codeql-home/codeql/cpp/tools/lib/dirs.sh
[2023-04-05 22:32:08] [build-stderr] +++ EXTRACTOR_DIRS=(TRAP SCRATCH DIAGNOSTIC SOURCE_ARCHIVE)
[2023-04-05 22:32:08] [build-stderr] +++ AUTOBUILD_TRIED_STEPS=/tmp/autobuild.I0CC9/tried_steps.txt
[2023-04-05 22:32:08] [build-stderr] + /home/russ/.app/codeql-home/codeql/cpp/tools/detect_source_root
[2023-04-05 22:32:08] [build-stdout] detect_source_root: Build will be attempted from '.'
[2023-04-05 22:32:08] [build-stdout] even though no build system was found there.
[2023-04-05 22:32:08] [build-stderr] + '[' -L _lgtm_detected_source_root ']'
[2023-04-05 22:32:08] [build-stderr] ++ readlink _lgtm_detected_source_root
[2023-04-05 22:32:08] [build-stderr] + cd .
[2023-04-05 22:32:08] [build-stderr] + export CXXFLAGS=-fpermissive
[2023-04-05 22:32:08] [build-stderr] + CXXFLAGS=-fpermissive
[2023-04-05 22:32:08] [build-stderr] + configure_prefix_opt=
[2023-04-05 22:32:08] [build-stderr] + '[' -f configure.ac ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f configure.in ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f CMakeLists.txt ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f meson.build ']'
[2023-04-05 22:32:08] [build-stderr] + try_configure
[2023-04-05 22:32:08] [build-stderr] + build_dir=.
[2023-04-05 22:32:08] [build-stderr] + root_dir=.
[2023-04-05 22:32:08] [build-stderr] + grep -q 'AC_MSG_.* configure in a separate.* directory' configure.in configure.ac
[2023-04-05 22:32:08] [build-stderr] + for configure in configure configure.gnu
[2023-04-05 22:32:08] [build-stderr] + '[' -x configure ']'
[2023-04-05 22:32:08] [build-stderr] + for configure in configure configure.gnu
[2023-04-05 22:32:08] [build-stderr] + '[' -x configure.gnu ']'
[2023-04-05 22:32:08] [build-stderr] + rm -rf _lgtm_build_dir
[2023-04-05 22:32:08] [build-stderr] + for bootstrap in bootstrap.sh bootstrap autogen.sh
[2023-04-05 22:32:08] [build-stderr] + '[' -x bootstrap.sh ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f bootstrap.sh ']'
[2023-04-05 22:32:08] [build-stderr] + for bootstrap in bootstrap.sh bootstrap autogen.sh
[2023-04-05 22:32:08] [build-stderr] + '[' -x bootstrap ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f bootstrap ']'
[2023-04-05 22:32:08] [build-stderr] + for bootstrap in bootstrap.sh bootstrap autogen.sh
[2023-04-05 22:32:08] [build-stderr] + '[' -x autogen.sh ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f autogen.sh ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f wscript ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f Kbuild ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f configure.ac ']'
[2023-04-05 22:32:08] [build-stderr] + '[' -f configure.in ']'
[2023-04-05 22:32:08] [build-stderr] ++ echo './*.pro'
[2023-04-05 22:32:08] [build-stderr] + '[' './*.pro' '!=' './*.pro' ']'
[2023-04-05 22:32:08] [build-stderr] + exit 0
[2023-04-05 22:32:08] [build-stderr] + /home/russ/.app/codeql-home/codeql/cpp/tools/do-build
[2023-04-05 22:32:08] [build-stderr] + . /home/russ/.app/codeql-home/codeql/cpp/tools/lib/build.sh
[2023-04-05 22:32:08] [build-stderr] ++ . /home/russ/.app/codeql-home/codeql/cpp/tools/lib/dirs.sh
[2023-04-05 22:32:08] [build-stderr] +++ EXTRACTOR_DIRS=(TRAP SCRATCH DIAGNOSTIC SOURCE_ARCHIVE)
[2023-04-05 22:32:08] [build-stderr] +++ AUTOBUILD_TRIED_STEPS=/tmp/autobuild.I0CC9/tried_steps.txt
[2023-04-05 22:32:08] [build-stderr] + [[ -L _lgtm_detected_source_root ]]
[2023-04-05 22:32:08] [build-stderr] ++ readlink _lgtm_detected_source_root
[2023-04-05 22:32:08] [build-stderr] + cd .
[2023-04-05 22:32:08] [build-stderr] + [[ -d _lgtm_build_dir ]]
[2023-04-05 22:32:08] [build-stdout] ~/codeql-learn ~/codeql-learn
[2023-04-05 22:32:08] [build-stderr] + pushd .
[2023-04-05 22:32:08] [build-stderr] + [[ -f SConstruct ]]
[2023-04-05 22:32:08] [build-stdout] ~/codeql-learn
[2023-04-05 22:32:08] [build-stderr] + [[ -f wscript ]]
[2023-04-05 22:32:08] [build-stderr] + [[ -f Makefile ]]
[2023-04-05 22:32:08] [build-stderr] + [[ -f makefile ]]
[2023-04-05 22:32:08] [build-stderr] + [[ -f GNUmakefile ]]
[2023-04-05 22:32:08] [build-stderr] + [[ -f build.ninja ]]
[2023-04-05 22:32:08] [build-stderr] + popd
[2023-04-05 22:32:08] [build-stderr] + for f in build build.sh
[2023-04-05 22:32:08] [build-stderr] + [[ -x build ]]
[2023-04-05 22:32:08] [build-stderr] + for f in build build.sh
[2023-04-05 22:32:08] [build-stderr] + [[ -x build.sh ]]
[2023-04-05 22:32:08] [build-stderr] + [[ -f setup.py ]]
[2023-04-05 22:32:08] [build-stderr] ++ find . -name '*.vcxproj'
[2023-04-05 22:32:08] [build-stderr] ++ head -1
[2023-04-05 22:32:08] [build-stderr] + [[ -n '' ]]
[2023-04-05 22:32:08] [build-stderr] + tried_everything
[2023-04-05 22:32:08] [build-stderr] + [[ -s /tmp/autobuild.I0CC9/tried_steps.txt ]]
[2023-04-05 22:32:08] [build-stderr] + emit_diagnostics no-build-command
[2023-04-05 22:32:08] [build-stderr] + /home/russ/.app/codeql-home/codeql/cpp/tools/diagnostics/emit.sh no-build-command
[2023-04-05 22:32:08] [build-stderr] cpp/autobuilder: No supported build system detected.
[2023-04-05 22:32:08] [build-stderr] + exit 1
[2023-04-05 22:32:08] [build-stderr] + cleanup
[2023-04-05 22:32:08] [build-stderr] + local exit_status=1
[2023-04-05 22:32:08] [build-stderr] + [[ -d /tmp/autobuild.I0CC9 ]]
[2023-04-05 22:32:08] [build-stderr] + [[ 1 == 0 ]]
[2023-04-05 22:32:08] [build-stderr] + for dir in "${EXTRACTOR_DIRS[@]}"
[2023-04-05 22:32:08] [build-stderr] ++ get_dir TRAP
[2023-04-05 22:32:08] [build-stderr] ++ local dir_var=CODEQL_EXTRACTOR_CPP_TRAP_DIR
[2023-04-05 22:32:08] [build-stderr] ++ echo /home/russ/codeql-learn/demo-db/trap/cpp
[2023-04-05 22:32:08] [build-stderr] + local dir_path=/home/russ/codeql-learn/demo-db/trap/cpp
[2023-04-05 22:32:08] [build-stderr] + [[ -d /home/russ/codeql-learn/demo-db/trap/cpp ]]
[2023-04-05 22:32:08] [build-stderr] + continue
[2023-04-05 22:32:08] [build-stderr] + for dir in "${EXTRACTOR_DIRS[@]}"
[2023-04-05 22:32:08] [build-stderr] ++ get_dir SCRATCH
[2023-04-05 22:32:08] [build-stderr] ++ local dir_var=CODEQL_EXTRACTOR_CPP_SCRATCH_DIR
[2023-04-05 22:32:08] [build-stderr] ++ echo /home/russ/codeql-learn/demo-db/working
[2023-04-05 22:32:08] [build-stderr] + local dir_path=/home/russ/codeql-learn/demo-db/working
[2023-04-05 22:32:08] [build-stderr] + [[ -d /home/russ/codeql-learn/demo-db/working ]]
[2023-04-05 22:32:08] [build-stderr] + cat /tmp/autobuild.I0CC9/tried_steps.txt
[2023-04-05 22:32:08] [build-stderr] + read build
[2023-04-05 22:32:08] [build-stderr] cat: /tmp/autobuild.I0CC9/tried_steps.txt: 没有那个文件或目录
[2023-04-05 22:32:08] [build-stderr] + for dir in "${EXTRACTOR_DIRS[@]}"
[2023-04-05 22:32:08] [build-stderr] ++ get_dir DIAGNOSTIC
[2023-04-05 22:32:08] [build-stderr] ++ local dir_var=CODEQL_EXTRACTOR_CPP_DIAGNOSTIC_DIR
[2023-04-05 22:32:08] [build-stderr] ++ echo /home/russ/codeql-learn/demo-db/diagnostic/extractors/cpp
[2023-04-05 22:32:08] [build-stderr] + local dir_path=/home/russ/codeql-learn/demo-db/diagnostic/extractors/cpp
[2023-04-05 22:32:08] [build-stderr] + [[ -d /home/russ/codeql-learn/demo-db/diagnostic/extractors/cpp ]]
[2023-04-05 22:32:08] [build-stderr] + cat /tmp/autobuild.I0CC9/tried_steps.txt
[2023-04-05 22:32:08] [build-stderr] + read build
[2023-04-05 22:32:08] [build-stderr] cat: /tmp/autobuild.I0CC9/tried_steps.txt: 没有那个文件或目录
[2023-04-05 22:32:08] [build-stderr] + for dir in "${EXTRACTOR_DIRS[@]}"
[2023-04-05 22:32:08] [build-stderr] ++ get_dir SOURCE_ARCHIVE
[2023-04-05 22:32:08] [build-stderr] ++ local dir_var=CODEQL_EXTRACTOR_CPP_SOURCE_ARCHIVE_DIR
[2023-04-05 22:32:08] [build-stderr] ++ echo /home/russ/codeql-learn/demo-db/src
[2023-04-05 22:32:08] [build-stderr] + local dir_path=/home/russ/codeql-learn/demo-db/src
[2023-04-05 22:32:08] [build-stderr] + [[ -d /home/russ/codeql-learn/demo-db/src ]]
[2023-04-05 22:32:08] [build-stderr] + continue
[2023-04-05 22:32:08] [build-stderr] + rm -rf /tmp/autobuild.I0CC9
[2023-04-05 22:32:08] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/home/russ/.app/codeql-home/codeql/tools/linux64/preload_tracer, /home/russ/.app/codeql-home/codeql/cpp/tools/autobuild.sh])
A fatal error occurred: Exit status 1 from command: [/home/russ/.app/codeql-home/codeql/cpp/tools/autobuild.sh]

And here are the info about my system and codeql:

➜ codeql-learn codeql --version
CodeQL command-line toolchain release 2.12.6.
Copyright (C) 2019-2023 GitHub, Inc.
Unpacked in: /home/russ/.app/codeql-home/codeql
   Analysis results depend critically on separately distributed query and
   extractor modules. To list modules that are visible to the toolchain,
   use 'codeql resolve qlpacks' and 'codeql resolve languages'.
➜ codeql-learn cat /proc/version
Linux version 5.15.0-69-generic (buildd@lcy02-amd64-071) 
(gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #76~20.04.1-Ubuntu SMP Mon Mar 20 15:54:19 UTC 2023

i wished to see a success,but i got an error

1 Answers1

0

The important output line here is probably the following:

cpp/autobuilder: No supported build system detected.

If you don't explicitly specify how the project should be built, CodeQL's autobuilders try to detect this automatically. If your demo just contains a single C++ file, but you are not using any build tool, then you might have to explicitly specify to CodeQL how to build the project using the --command argument, see also the documentation.

Marcono1234
  • 5,856
  • 1
  • 25
  • 43
  • Do you mean I should add an argument like ```codeql database create ./demo-db -s . --language=cpp --command=g++ demo.cpp -o demo ``` ? – turtle-russ Apr 06 '23 at 02:39
  • Yes, but if the command contains spaces you will have to put quotes around it: `codeql database create ... --command='g++ demo.cpp -o demo'` – Marcono1234 Apr 07 '23 at 20:07