Build-wrapper and arduino-cli "skipping process with pid"

Hi,

I’m using Sonarque to analyze Arduino based project.

  • Sonarqube version : 8.6.1.40680 (Developper edition)
  • build-wrapper, version 6.15 (linux-x86)
  • Build is running wihtin a Docker

When I launched :

build-wrapper-linux-x86-64 --out-dir ${SONAR_BUILD_WRAPPER_OUTPUT_FOLDER} arduino-cli compile ....

I got in build-wrapper.log :

Thu Mar 04 09:50:02 2021: process created with pid: 25
Thu Mar 04 09:50:02 2021: parent pid: 13
Thu Mar 04 09:50:02 2021: working directory: </project>
Thu Mar 04 09:50:02 2021: executable: </bin/arduino-cli>
Thu Mar 04 09:50:02 2021: argv[0]: <arduino-cli>
Thu Mar 04 09:50:02 2021: argv[1]: <compile>
Thu Mar 04 09:50:02 2021: argv[2]: <--build-cache-path>
Thu Mar 04 09:50:02 2021: argv[3]: </project/cache>
Thu Mar 04 09:50:02 2021: argv[4]: <--build-path>
Thu Mar 04 09:50:02 2021: argv[5]: </project/obj>
Thu Mar 04 09:50:02 2021: argv[6]: <--output-dir>
Thu Mar 04 09:50:02 2021: argv[7]: </project/bin>
Thu Mar 04 09:50:02 2021: argv[8]: <--fqbn>
Thu Mar 04 09:50:02 2021: argv[9]: <esp32:esp32:esp32wrover:PartitionScheme=default,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=verbose>
Thu Mar 04 09:50:02 2021: argv[10]: <project.ino>
Thu Mar 04 09:50:02 2021: skipping process with pid: 25
Thu Mar 04 09:50:26 2021: process created with pid: 483
Thu Mar 04 09:50:26 2021: parent pid: 13
Thu Mar 04 09:50:26 2021: working directory: </project>

Important line :

Thu Mar 04 09:50:02 2021: skipping process with pid: 25

And as a result, no files where analyzed. (build-wrapper-dump.json empty)

The same procedure works perfectly with another “makefile based” project.

Why is not able to scan build process ?

Thank you for your help.

Charles.

Hi @cgorandeft ,

to scan arduino-cli projects you can have a look at these previous topics:

Hi @mpaladin ,

Thank you for your answer. I already looked at those topics before posting.

I already specified the path as follow :

arduino-cli compile \
    --build-cache-path ${CACHE_PATH} \
    --build-path ${COMPILED_PATH} \
    --output-dir ${OUTPUT_PATH} \
    --fqbn esp32:esp32:esp32wrover:PartitionScheme=default,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=verbose \
    project.ino

Where :

PROJECT_SRC_PATH=/project
CACHE_PATH=${PROJECT_SRC_PATH}/cache
COMPILED_PATH=${PROJECT_SRC_PATH}/obj
OUTPUT_PATH=${PROJECT_SRC_PATH}/bin

It does not work or I don’t understand answers in related topics ^^

Is there any way to get additional logs from sonarqube to know what’s going wrong ?

Thank you.

Hi @cgorandeft ,

could you share the build-wrapper output folder and the sonar-scanner debug output?

Hi @mpaladin ,

build-wrapper-dump.json:

# (C) SonarSource SA, 2014-2020, info@sonarsource.com
# All SONARSOURCE programs and content are copyright protected.
# SONARSOURCE and SONARQUBE are trademarks of SonarSource SA. All rights are expressly reserved.
#
# This file is designed exclusively for use with the SONARSOURCE C / C++ / Objective-C Plugin.
# It may not be used in connection with any other software.
# Any other use is prohibited by law and may be grounds for immediate termination of your License.
{
"version":"6.15",
"captures":[
]}

build-wrapper.log:

Mon Mar 08 15:36:26 2021: build-wrapper, version 6.15 (linux-x86)
Mon Mar 08 15:36:26 2021: System name: Linux Nodename: 5526f3aad9e8 Release: 5.10.0-1-amd64 Version: #1 SMP Debian 5.10.4-1 (2020-12-31) Machine: x86_64
Mon Mar 08 15:36:26 2021: socket path: /tmp/build-wrapper-socket.NthDk1
Mon Mar 08 15:36:26 2021: dynamic library found: /build-wrapper/libinterceptor-i686.so
Mon Mar 08 15:36:26 2021: dynamic library found: /build-wrapper/libinterceptor-x86_64.so
Mon Mar 08 15:36:26 2021: dynamic library found: /build-wrapper/libinterceptor-haswell.so
Mon Mar 08 15:36:26 2021: command executed as: </build-wrapper/build-wrapper-linux-x86-64>
Mon Mar 08 15:36:26 2021: command line received: <./linux_build.sh>
Mon Mar 08 15:36:26 2021: env 0: <HOSTNAME=5526f3aad9e8>
Mon Mar 08 15:36:26 2021: env 1: <SONAR_BUILD_WRAPPER_OUTPUT_FOLDER=/project/sonarqube_bw_output>
Mon Mar 08 15:36:26 2021: env 2: <PWD=/project>
Mon Mar 08 15:36:26 2021: env 3: <SONAR_PROJECT_KEY=Project_KEY>
Mon Mar 08 15:36:26 2021: env 4: <CCACHE_DIR=/ccache/>
Mon Mar 08 15:36:26 2021: env 5: <SONAR_HOST_URL=https://sonarqube.mycompany.com>
Mon Mar 08 15:36:26 2021: env 6: <SONAR_CACHE=/project/sonarqube_cache>
Mon Mar 08 15:36:26 2021: env 7: <HOME=/home/docker>
Mon Mar 08 15:36:26 2021: env 8: <TERM=xterm>
Mon Mar 08 15:36:26 2021: env 9: <SHLVL=2>
Mon Mar 08 15:36:26 2021: env 10: <SONAR_OUTPUT_FOLDER=/project/sonarqube>
Mon Mar 08 15:36:26 2021: env 11: <SONAR_SOURCE_PATH=/project/>
Mon Mar 08 15:36:26 2021: env 12: <SONAR_EXCLUDE=*.html>
Mon Mar 08 15:36:26 2021: env 13: <SONAR_TOKEN=----HIDE-TOKEN---->
Mon Mar 08 15:36:26 2021: env 14: <SONAR_USER_HOME=/project/sonarqube_cache>
Mon Mar 08 15:36:26 2021: env 15: <SONAR_JOBS=4>
Mon Mar 08 15:36:26 2021: env 16: <PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin>
Mon Mar 08 15:36:26 2021: env 17: <OLDPWD=/>
Mon Mar 08 15:36:26 2021: env 18: <_=/build-wrapper/build-wrapper-linux-x86-64>
Mon Mar 08 15:36:26 2021: executing: <./linux_build.sh>
Mon Mar 08 15:36:26 2021: initializing json file
Mon Mar 08 15:36:26 2021: process created with pid: 12
Mon Mar 08 15:36:26 2021: parent pid: 11
Mon Mar 08 15:36:26 2021: working directory: </project>
Mon Mar 08 15:36:26 2021: executable: </build-wrapper/build-wrapper-linux-x86-64>
Mon Mar 08 15:36:26 2021: argv[0]: </build-wrapper/build-wrapper-linux-x86-64>
Mon Mar 08 15:36:26 2021: argv[1]: <-c>
Mon Mar 08 15:36:26 2021: argv[2]: <>
Mon Mar 08 15:36:26 2021: argv[3]: <./linux_build.sh>
Mon Mar 08 15:36:26 2021: skipping process with pid: 12
Mon Mar 08 15:36:26 2021: process created with pid: 13
Mon Mar 08 15:36:26 2021: parent pid: 12
Mon Mar 08 15:36:26 2021: working directory: </project>
Mon Mar 08 15:36:26 2021: executable: </bin/bash>
Mon Mar 08 15:36:26 2021: argv[0]: </bin/bash>
Mon Mar 08 15:36:26 2021: argv[1]: <./linux_build.sh>
Mon Mar 08 15:36:26 2021: skipping process with pid: 13
Mon Mar 08 15:36:26 2021: process created with pid: 14
Mon Mar 08 15:36:26 2021: parent pid: 13
Mon Mar 08 15:36:26 2021: working directory: </project>
Mon Mar 08 15:36:26 2021: executable: </bin/date>
Mon Mar 08 15:36:26 2021: argv[0]: <date>
Mon Mar 08 15:36:26 2021: argv[1]: <+%H:%M:%S>
Mon Mar 08 15:36:26 2021: skipping process with pid: 14
Mon Mar 08 15:36:26 2021: process created with pid: 15
Mon Mar 08 15:36:26 2021: parent pid: 13
Mon Mar 08 15:36:26 2021: working directory: </project>
Mon Mar 08 15:36:26 2021: executable: </usr/bin/basename>
Mon Mar 08 15:36:26 2021: argv[0]: <basename>
Mon Mar 08 15:36:26 2021: argv[1]: <./linux_build.sh>
Mon Mar 08 15:36:26 2021: skipping process with pid: 15
Mon Mar 08 15:36:26 2021: process created with pid: 16
Mon Mar 08 15:36:26 2021: parent pid: 13
Mon Mar 08 15:36:26 2021: working directory: </project>
Mon Mar 08 15:36:26 2021: executable: </usr/bin/rsync>
Mon Mar 08 15:36:26 2021: argv[0]: <rsync>
Mon Mar 08 15:36:26 2021: argv[1]: <-rltgoDv>
Mon Mar 08 15:36:26 2021: argv[2]: </home/docker/>
Mon Mar 08 15:36:26 2021: argv[3]: </project/home/>
Mon Mar 08 15:36:26 2021: skipping process with pid: 16
Mon Mar 08 15:36:34 2021: process created with pid: 19
Mon Mar 08 15:36:34 2021: parent pid: 13
Mon Mar 08 15:36:34 2021: working directory: </project>
Mon Mar 08 15:36:34 2021: executable: </bin/cp>
Mon Mar 08 15:36:34 2021: argv[0]: <cp>
Mon Mar 08 15:36:34 2021: argv[1]: </project/patched_files/main.cpp>
Mon Mar 08 15:36:34 2021: argv[2]: <./home/.arduino15/packages/esp32/hardware/esp32/1.0.5/cores/esp32/main.cpp>
Mon Mar 08 15:36:34 2021: skipping process with pid: 19
Mon Mar 08 15:36:34 2021: process created with pid: 20
Mon Mar 08 15:36:34 2021: parent pid: 13
Mon Mar 08 15:36:34 2021: working directory: </project>
Mon Mar 08 15:36:34 2021: executable: </bin/date>
Mon Mar 08 15:36:34 2021: argv[0]: <date>
Mon Mar 08 15:36:34 2021: argv[1]: <+%H:%M:%S>
Mon Mar 08 15:36:34 2021: skipping process with pid: 20
Mon Mar 08 15:36:34 2021: process created with pid: 21
Mon Mar 08 15:36:34 2021: parent pid: 13
Mon Mar 08 15:36:34 2021: working directory: </project>
Mon Mar 08 15:36:34 2021: executable: </usr/bin/basename>
Mon Mar 08 15:36:34 2021: argv[0]: <basename>
Mon Mar 08 15:36:34 2021: argv[1]: <./linux_build.sh>
Mon Mar 08 15:36:34 2021: skipping process with pid: 21
Mon Mar 08 15:36:34 2021: process created with pid: 22
Mon Mar 08 15:36:34 2021: parent pid: 13
Mon Mar 08 15:36:34 2021: working directory: </project>
Mon Mar 08 15:36:34 2021: executable: </bin/date>
Mon Mar 08 15:36:34 2021: argv[0]: <date>
Mon Mar 08 15:36:34 2021: argv[1]: <+%H:%M:%S>
Mon Mar 08 15:36:34 2021: skipping process with pid: 22
Mon Mar 08 15:36:34 2021: process created with pid: 23
Mon Mar 08 15:36:34 2021: parent pid: 13
Mon Mar 08 15:36:34 2021: working directory: </project>
Mon Mar 08 15:36:34 2021: executable: </usr/bin/basename>
Mon Mar 08 15:36:34 2021: argv[0]: <basename>
Mon Mar 08 15:36:34 2021: argv[1]: <./linux_build.sh>
Mon Mar 08 15:36:34 2021: skipping process with pid: 23
Mon Mar 08 15:36:34 2021: process created with pid: 24
Mon Mar 08 15:36:34 2021: parent pid: 13
Mon Mar 08 15:36:34 2021: working directory: </project>
Mon Mar 08 15:36:34 2021: executable: </bin/rm>
Mon Mar 08 15:36:34 2021: argv[0]: <rm>
Mon Mar 08 15:36:34 2021: argv[1]: <-rf>
Mon Mar 08 15:36:34 2021: argv[2]: </project/obj>
Mon Mar 08 15:36:34 2021: skipping process with pid: 24
Mon Mar 08 15:36:34 2021: process created with pid: 25
Mon Mar 08 15:36:34 2021: parent pid: 13
Mon Mar 08 15:36:34 2021: working directory: </project>
Mon Mar 08 15:36:34 2021: executable: </bin/arduino-cli>
Mon Mar 08 15:36:34 2021: argv[0]: <arduino-cli>
Mon Mar 08 15:36:34 2021: argv[1]: <compile>
Mon Mar 08 15:36:34 2021: argv[2]: <--build-cache-path>
Mon Mar 08 15:36:34 2021: argv[3]: </project/cache>
Mon Mar 08 15:36:34 2021: argv[4]: <--build-path>
Mon Mar 08 15:36:34 2021: argv[5]: </project/obj>
Mon Mar 08 15:36:34 2021: argv[6]: <--output-dir>
Mon Mar 08 15:36:34 2021: argv[7]: </project/bin>
Mon Mar 08 15:36:34 2021: argv[8]: <--fqbn>
Mon Mar 08 15:36:34 2021: argv[9]: <esp32:esp32:esp32wrover:PartitionScheme=default,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=verbose>
Mon Mar 08 15:36:34 2021: argv[10]: <project.ino>
Mon Mar 08 15:36:34 2021: skipping process with pid: 25
Mon Mar 08 15:36:55 2021: process created with pid: 483
Mon Mar 08 15:36:55 2021: parent pid: 13
Mon Mar 08 15:36:55 2021: working directory: </project>
Mon Mar 08 15:36:55 2021: executable: </bin/date>
Mon Mar 08 15:36:55 2021: argv[0]: <date>
Mon Mar 08 15:36:55 2021: argv[1]: <+%H:%M:%S>
Mon Mar 08 15:36:55 2021: skipping process with pid: 483
Mon Mar 08 15:36:55 2021: process created with pid: 484
Mon Mar 08 15:36:55 2021: parent pid: 13
Mon Mar 08 15:36:55 2021: working directory: </project>
Mon Mar 08 15:36:55 2021: executable: </usr/bin/basename>
Mon Mar 08 15:36:55 2021: argv[0]: <basename>
Mon Mar 08 15:36:55 2021: argv[1]: <./linux_build.sh>
Mon Mar 08 15:36:55 2021: skipping process with pid: 484
Mon Mar 08 15:36:55 2021: finalizing json file
Mon Mar 08 15:36:55 2021: returned with code: 0

I did not launch sonar-scanner as the first step contains no files.

Hi @cgorandeft ,

from the log it seems that the /bin/arduino-cli is not invoking the compiler. Could you make sure it is running a clean build and all files get compiled?

Hi @mpaladin,

The compiler is definitely called, the binary is created with correct date … Else I wouldn’t ask such question.
In my script, I first delete the compiled folders :

rm -rf ${COMPILED_PATH}
arduino-cli compile ....

I even manualy clean everything. Same results.

Here the output of ps ux :

cgorand   603546  0.0  0.0   3892  2976 pts/12   S+   09:38   0:00 /bin/bash ./analyze.sh
cgorand   603549  0.5  0.3 831212 56304 pts/12   Sl+  09:38   0:00 docker run --rm -it -u 1000:1000 -v /home/cgorand/projects/myproject:/project/ eft-docker-img /bin/bash -c cd project/ ;./linux_analyze.sh
cgorand   603603  0.2  0.0   3740  2812 pts/0    Ss+  09:38   0:00 /bin/bash -c cd project/ ;./linux_analyze.sh
cgorand   603639  0.0  0.0   3872  3044 pts/0    S+   09:38   0:00 /bin/bash ./linux_analyze.sh
cgorand   603643  0.0  0.0   3756  1172 pts/0    S+   09:38   0:00 /build-wrapper/build-wrapper-linux-x86-64 --out-dir /project/sonarqube_bw_output ./linux_build.sh
cgorand   603644  0.0  0.0   5856  1200 pts/0    S+   09:38   0:00 /build-wrapper/build-wrapper-linux-x86-64 -c  ./linux_build.sh
cgorand   603645  0.0  0.0   5936  3272 pts/0    S+   09:38   0:00 /bin/bash ./linux_build.sh
cgorand   603658  7.1  0.5 1314996 88640 pts/0   Sl+  09:38   0:00 arduino-cli compile --build-cache-path /project/cache --build-path /project/obj --output-dir /project/bin --fqbn esp32:esp32:esp32wrover:PartitionScheme=default,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=verbose project.ino
cgorand   603801  0.0  0.0   6416  1628 pts/0    S+   09:38   0:00 /project/home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/config -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_trace -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_update -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/asio -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bootloader_support -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bt -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/coap -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/console -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/driver -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/efuse -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-tls -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32 -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_adc_cal -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_event -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_client -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_server -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_ota -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_server -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_ringbuf -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_websocket_client -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/espcoredump -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ethernet -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/expat -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fatfs -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freemodbus -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freertos -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/heap -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/idf_test -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/jsmn -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/json -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/libsodium -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/log -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/lwip -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mbedtls -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mdns -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/micro-ecc -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mqtt -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/newlib -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nghttp -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nimble -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nvs_flash -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/openssl -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protobuf-c -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protocomm -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/pthread -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/sdmmc -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/smartconfig_ack -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/soc -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spi_flash -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spiffs -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcp_transport -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcpip_adapter -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ulp -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/unity -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/vfs -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wear_levelling -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wifi_provisioning -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wpa_supplicant -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/xtensa-debug-module -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32-camera -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fb_gfx -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32_DEV" -DARDUINO_VARIANT="esp32" -DESP32 -DCORE_DEBUG_LEVEL=5 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/cores/esp32 -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/variants/esp32 -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/SPIFFS/src -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WiFi/src -I/project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/ESP32/src /project/obj/sketch/project.ino.cpp -o /project/obj/preproc/ctags_target_for_gcc_minus_e.cpp
cgorand   603802  0.0  0.1  38604 28136 pts/0    R+   09:38   0:00 /project/home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/cc1plus -E -quiet -CC -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/config -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_trace -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_update -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/asio -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bootloader_support -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bt -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/coap -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/console -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/driver -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/efuse -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-tls -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32 -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_adc_cal -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_event -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_client -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_server -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_ota -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_server -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_ringbuf -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_websocket_client -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/espcoredump -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ethernet -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/expat -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fatfs -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freemodbus -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freertos -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/heap -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/idf_test -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/jsmn -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/json -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/libsodium -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/log -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/lwip -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mbedtls -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mdns -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/micro-ecc -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mqtt -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/newlib -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nghttp -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nimble -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nvs_flash -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/openssl -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protobuf-c -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protocomm -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/pthread -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/sdmmc -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/smartconfig_ack -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/soc -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spi_flash -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spiffs -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcp_transport -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcpip_adapter -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ulp -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/unity -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/vfs -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wear_levelling -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wifi_provisioning -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wpa_supplicant -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/xtensa-debug-module -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32-camera -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fb_gfx -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/cores/esp32 -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/variants/esp32 -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/SPIFFS/src -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WiFi/src -I /project/home/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/ESP32/src -imultilib esp32-psram -iprefix /project/home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/ -isysroot /project/home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../xtensa-esp32-elf/sysroot -dD -D ESP_PLATFORM -D MBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -D HAVE_CONFIG_H -D GCC_NOT_5_2_0=0 -D WITH_POSIX -D F_CPU=240000000L -D ARDUINO=10607 -D ARDUINO_ESP32_DEV -D ARDUINO_ARCH_ESP32 -D ARDUINO_BOARD="ESP32_DEV" -D ARDUINO_VARIANT="esp32" -D ESP32 -D CORE_DEBUG_LEVEL=5 -D BOARD_HAS_PSRAM /project/obj/sketch/project.ino.cpp -o /project/obj/preproc/ctags_target_for_gcc_minus_e.cpp -mlongcalls -mfix-esp32-psram-cache-issue -std=gnu++11 -Wpointer-arith -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -w -w -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -fno-rtti -g3 -fworking-directory -Os
cgorand   603803  0.0  0.0   6636  2844 pts/15   R+   09:38   0:00 ps ux

And passing arduino-cli command directly to buildwrapper does not change the result, process is still skipped.

Does the compiler prefix causing the issue ? (xtensa-esp32-elf-g++)

Hi @cgorandeft ,

the skipped in this context means it is not going to build-wrapper-dump.json, it doesn’t mean that the process is not injected with the dynamic library.

Is this binary statically linked? If yes that is the reason why the process doesn’t appear in the build-wrapper logs and json.

I got this :

$ file home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++
home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4478031f5a8e15412ec4b783116225065ac7b03d, stripped

And :

$ ldd home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++
    linux-vdso.so.1 (0x00007ffcdcd46000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3f4f993000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3f4f84f000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3f4f68a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f3f4fb87000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3f4f670000)

So it is not staticaly linked ?

Hi @cgorandeft ,

what if you run build-wrapper directly on the compiler? Something like:

touch file.c
/build-wrapper/build-wrapper-linux-x86-64 --out-dir bwrapper-output /project/home/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++ -c file.c

It’s working. I have a lot of content generated in files. Is it arduino-cli causing this mess ^^ ?

So how to deal with arduino-cli ? Is it the executable nature that causing issue ?

Hi @cgorandeft ,

I kind of doubt it given that the other users in the forum didn’t face any issue in catching compiler invocations.

Are you using the standard arduino-cli or a custom build?

Hi @mpaladin ,

I’m using standard arduino-cli.

I’m using this command in the Docker image :

RUN curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh

Hi @cgorandeft ,

then if you are sure that you’re doing everything correct and you can share your dockerfile/script with a helloworld project I can try to reproduce it on my side.

Hi @mpaladin,

Ok I’ll try a hello world example.
How can I send you attachment ?

Hi @cgorandeft ,

you can attach it here or I can send you a PM where you can share it privately.

Send me a PM please :slight_smile:

Hi @cgorandeft ,

I sent you a PM.

Hi @cgorandeft ,

thank you for the reproducer. I gave a look at it and actually discovered that arduino-cli finally implemented compilation database generation. A file named compile_commands.json file gets generated into --build-path=.

Our analyzer still doesn’t offer official support for the compilation database, we are going to add it in few months. In the meantime, we provide a script to convert the compilation database into build-wrapper-dump.json file, you can have a look at the ticket: https://jira.sonarsource.com/browse/CPP-1428. This is the way I would recommend you to use to configure our analyzer.