Sysinternals / ProcDump-for-Linux

A Linux version of the ProcDump Sysinternals tool
MIT License
2.93k stars 302 forks source link

1.4.1: build fails #175

Closed kloczek closed 1 year ago

kloczek commented 1 year ago

Looks like somethinf is wrong and I cannot figure out why build fails

```console + cd ProcDump-for-Linux-1.4.1 + ASMFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none' + CFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os' + CXXFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none' + FFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,--gc-sections -Wl,--as-needed -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--build-id=sha1' + RUSTFLAGS='-C codegen-units=1 -C debuginfo=2 -C opt-level=2 -C link-arg=-fdata-sections -C link-arg=-ffunction-sections -C link-arg=-Wl,--as-needed -C link-arg=-Wl,-z,now -C link-arg=-Wl,-z,relro --cap-lints=warn' + VALAFLAGS=-g + CC=/usr/bin/gcc + CXX=/usr/bin/g++ + FC=/usr/bin/gfortran + AR=/usr/bin/gcc-ar + NM=/usr/bin/gcc-nm + RANLIB=/usr/bin/gcc-ranlib + export ASMFLAGS CFLAGS CXXFLAGS FFLAGS FCFLAGS LDFLAGS VALAFLAGS CC CXX FC AR NM RANLIB RUSTFLAGS VALAFLAGS + /usr/bin/make -O -j1 V=1 VERBOSE=1 test CC=/usr/bin/gcc CXX=/usr/bin/g++ rm -rf obj rm -rf bin rm -rf /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.4.1/pkgbuild mkdir -p obj mkdir -p bin /usr/bin/gcc -c -g -o obj/CoreDumpWriter.o src/CoreDumpWriter.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/DotnetHelpers.o src/DotnetHelpers.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 src/DotnetHelpers.c: In function 'IsCoreClrProcess': src/DotnetHelpers.c:44:9: warning: ignoring return value of 'fgets' declared with attribute 'warn_unused_result' [-Wunused-result] 44 | fgets(lineBuf, sizeof(lineBuf), procFile); // Skip first line with column headers. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/bin/gcc -c -g -o obj/Events.o src/Events.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/GenHelpers.o src/GenHelpers.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/Handle.o src/Handle.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/Logging.o src/Logging.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/Monitor.o src/Monitor.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/ProcDumpConfiguration.o src/ProcDumpConfiguration.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/Procdump.o src/Procdump.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -c -g -o obj/Process.o src/Process.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 src/Process.c: In function 'GetMaximumPID': src/Process.c:778:9: warning: ignoring return value of 'fscanf' declared with attribute 'warn_unused_result' [-Wunused-result] 778 | fscanf(pidMaxFile, "%d", &maxPIDs); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/bin/gcc -c -g -o obj/ProfilerHelpers.o src/ProfilerHelpers.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/gcc -o bin/procdump obj/CoreDumpWriter.o obj/DotnetHelpers.o obj/Events.o obj/GenHelpers.o obj/Handle.o obj/Logging.o obj/Monitor.o obj/ProcDumpConfiguration.o obj/Procdump.o obj/Process.o obj/ProfilerHelpers.o obj/ProcDumpProfiler.o -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 /usr/bin/ld: cannot find obj/ProcDumpProfiler.o: No such file or directory collect2: error: ld returned 1 exit status make: *** [Makefile:67: bin/procdump] Error 1 ```
MarioHewardt commented 1 year ago

Can you try getting the latest changes? The warning (turned errors) shown above are already fixed.

kloczek commented 1 year ago

Just tested with all commits added after last release and build still fails

```console warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//archive/1.4.1/procdump-procdump-1.4.1.tar.gz to /home/tkloczko/rpmbuild/SOURCES/procdump-procdump-1.4.1.tar.gz warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/7ff05b06.patch#/procdump-Add-address-sanitation-to-integration-test-run-166.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Add-address-sanitation-to-integration-test-run-166.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/7481eeac.patch#/procdump-Fix-memory-leaks-and-integration-tests-165.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Fix-memory-leaks-and-integration-tests-165.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/8b1e4422.patch#/procdump-Fix-integration-timing-issues-168.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Fix-integration-timing-issues-168.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/c7a61af9.patch#/procdump-Initial-refactor-of-integration-tests-169.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Initial-refactor-of-integration-tests-169.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/271cda93.patch#/procdump-Enable-stack-protection-170.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Enable-stack-protection-170.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/86e3c317.patch#/procdump-Enable-source-fortification-171.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Enable-source-fortification-171.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/fbd84ddf.patch#/procdump-Enable-static-analysis-172.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Enable-static-analysis-172.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/4c0daa75.patch#/procdump-Fix-verifier-warnings-and-build-step-for-Rocky-173.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Fix-verifier-warnings-and-build-step-for-Rocky-173.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/36d94aa0.patch#/procdump-Drop-fortificatin-level-to-2-174.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Drop-fortificatin-level-to-2-174.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/04aefc57.patch#/procdump-Remove-annotations-to-work-around-dependency-problem.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Remove-annotations-to-work-around-dependency-problem.patch warning: Downloading https://github.com/microsoft/ProcDump-for-Linux//commit/fa78b3ce.patch#/procdump-Cleanup-build-install-instructions-177.patch to /home/tkloczko/rpmbuild/SOURCES/procdump-Cleanup-build-install-instructions-177.patch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.bbAhYi + umask 022 + cd /home/tkloczko/rpmbuild/BUILD + cd /home/tkloczko/rpmbuild/BUILD + rm -rf ProcDump-for-Linux-1.4.1 + /usr/bin/gzip -dc /home/tkloczko/rpmbuild/SOURCES/procdump-procdump-1.4.1.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd ProcDump-for-Linux-1.4.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Add-address-sanitation-to-integration-test-run-166.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Fix-memory-leaks-and-integration-tests-165.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Fix-integration-timing-issues-168.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Initial-refactor-of-integration-tests-169.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Enable-stack-protection-170.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Enable-source-fortification-171.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Enable-static-analysis-172.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Fix-verifier-warnings-and-build-step-for-Rocky-173.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Drop-fortificatin-level-to-2-174.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Remove-annotations-to-work-around-dependency-problem.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/procdump-Cleanup-build-install-instructions-177.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.w8sQbC + umask 022 + cd /home/tkloczko/rpmbuild/BUILD + ASMFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none' + CFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os' + CXXFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none' + FFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,--gc-sections -Wl,--as-needed -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--build-id=sha1' + RUSTFLAGS='-C codegen-units=1 -C debuginfo=2 -C opt-level=2 -C link-arg=-fdata-sections -C link-arg=-ffunction-sections -C link-arg=-Wl,--as-needed -C link-arg=-Wl,-z,now -C link-arg=-Wl,-z,relro --cap-lints=warn' + VALAFLAGS=-g + CC=/usr/bin/gcc + CXX=/usr/bin/g++ + FC=/usr/bin/gfortran + AR=/usr/bin/gcc-ar + NM=/usr/bin/gcc-nm + RANLIB=/usr/bin/gcc-ranlib + export ASMFLAGS CFLAGS CXXFLAGS FFLAGS FCFLAGS LDFLAGS VALAFLAGS CC CXX FC AR NM RANLIB RUSTFLAGS VALAFLAGS + cd ProcDump-for-Linux-1.4.1 + ASMFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none' + CFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os' + CXXFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none' + FFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,--gc-sections -Wl,--as-needed -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--build-id=sha1' + RUSTFLAGS='-C codegen-units=1 -C debuginfo=2 -C opt-level=2 -C link-arg=-fdata-sections -C link-arg=-ffunction-sections -C link-arg=-Wl,--as-needed -C link-arg=-Wl,-z,now -C link-arg=-Wl,-z,relro --cap-lints=warn' + VALAFLAGS=-g + CC=/usr/bin/gcc + CXX=/usr/bin/g++ + FC=/usr/bin/gfortran + AR=/usr/bin/gcc-ar + NM=/usr/bin/gcc-nm + RANLIB=/usr/bin/gcc-ranlib + export ASMFLAGS CFLAGS CXXFLAGS FFLAGS FCFLAGS LDFLAGS VALAFLAGS CC CXX FC AR NM RANLIB RUSTFLAGS VALAFLAGS + /usr/bin/make -O -j48 V=1 VERBOSE=1 CC=/usr/bin/gcc CXX=/usr/bin/g++ rm -rf obj rm -rf bin rm -rf /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.4.1/pkgbuild mkdir -p obj mkdir -p bin /usr/bin/gcc -c -g -o obj/ProcDumpTestApplication.o tests/integration/ProcDumpTestApplication.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/Logging.o src/Logging.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/Procdump.o src/Procdump.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/Events.o src/Events.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/DotnetHelpers.o src/DotnetHelpers.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/Handle.o src/Handle.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/ProfilerHelpers.o src/ProfilerHelpers.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/CoreDumpWriter.o src/CoreDumpWriter.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/GenHelpers.o src/GenHelpers.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/Process.o src/Process.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/ProcDumpConfiguration.o src/ProcDumpConfiguration.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -o bin/ProcDumpTestApplication obj/ProcDumpTestApplication.o -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -c -g -o obj/Monitor.o src/Monitor.c -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/gcc -o bin/procdump obj/CoreDumpWriter.o obj/DotnetHelpers.o obj/Events.o obj/GenHelpers.o obj/Handle.o obj/Logging.o obj/Monitor.o obj/ProcDumpConfiguration.o obj/Procdump.o obj/Process.o obj/ProfilerHelpers.o obj/ProcDumpProfiler.o -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror /usr/bin/ld: cannot find obj/ProcDumpProfiler.o: No such file or directory collect2: error: ld returned 1 exit status make: *** [Makefile:67: bin/procdump] Error 1 make: *** Waiting for unfinished jobs.... clang++ -o obj/ProcDumpProfiler.so -DELPP_NO_DEFAULT_LOG_FILE -DELPP_THREAD_SAFE -g -pthread -shared --no-undefined -Wno-invalid-noreturn -Wno-pragma-pack -Wno-writable-strings -Wno-format-security -fPIC -fms-extensions -DHOST_64BIT -DBIT64 -DPAL_STDCPP_COMPAT -DPLATFORM_UNIX -std=c++11 -I profiler/inc profiler/src/ClassFactory.cpp profiler/src/ProcDumpProfiler.cpp profiler/src/dllmain.cpp profiler/src/corprof_i.cpp profiler/src/easylogging++.cc ld -r -b binary -o obj/ProcDumpProfiler.o obj/ProcDumpProfiler.so ```
MarioHewardt commented 1 year ago

Looks like a different error now. Is that when building packages (make rpm)? What gcc version are you using and can you show the command line you used above to build?

kloczek commented 1 year ago

I'm usimg gcc 13.x from fedora rawhide.

MarioHewardt commented 1 year ago

Can you show the exact command you are using when encountering the above? The log seems to indicate you are using the -j switch. If so, please remove that switch and try building again.

MarioHewardt commented 1 year ago

I'm able to reproduce the error above on Fedora Rawhide when specifying -j8 but it does not reproduce without it. It looks like there is incorrect sequencing when building with multiple concurrent jobs.

MarioHewardt commented 1 year ago

Fixed in #164

kloczek commented 1 year ago

With that PR I was able to finish build however test suite fails on missing .NET. What is it? šŸ¤”

+ /usr/bin/make -O -j48 V=1 VERBOSE=1 test CC=/usr/bin/gcc CXX=/usr/bin/g++
rm -rf obj
rm -rf bin
rm -rf /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.4.1/pkgbuild
mkdir -p obj
mkdir -p bin
./tests/integration/run.sh
Please install .NET before running this script!
make: *** [Makefile:85: test] Error 1
kloczek commented 1 year ago

On building 1.4.1 + master commits I see build failing

/usr/bin/gcc -o bin/procdump obj/CoreDumpWriter.o obj/DotnetHelpers.o obj/Events.o obj/GenHelpers.o obj/Handle.o obj/Logging.o obj/Monitor.o obj/ProcDumpConfiguration.o obj/Procdump.o obj/Process.o obj/ProfilerHelpers.o obj/ProcDumpProfiler.o -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -I ./include -pthread -std=gnu99 -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -fanalyzer -Werror
In function 'cleanup_fd',
    inlined from 'ExtractProfiler' at src/ProfilerHelpers.c:26:22:
./include/GenHelpers.h:43:8: error: leak of file descriptor 'creat ("/usr/local/bin/procdumpprofiler.so", 452)' [CWE-775] [-Werror=analyzer-fd-leak]
   43 |     if (*val)
      |        ^
  'ExtractProfiler': events 1-5
    |
    |src/ProfilerHelpers.c:31:14:
    |   26 |     auto_free_fd int destfd = -1;
    |      |                      ~
    |      |                      |
    |      |                      (5) inlined call to 'cleanup_fd' from 'ExtractProfiler'
    |......
    |   31 |     destfd = creat(PROCDUMP_DIR "/" PROFILER_FILE_NAME, S_IRWXU|S_IROTH);
    |      |              ^
    |      |              |
    |      |              (1) opened here
    |   32 |     if (destfd < 0)
    |      |        ~
    |      |        |
    |      |        (2) assuming 'creat ("/usr/local/bin/procdumpprofiler.so", 452)' is a valid file descriptor (>= 0)
    |      |        (3) following 'false' branch...
    |......
    |   37 |     size_t written = 0;
    |      |     ~
    |      |     |
    |      |     (4) ...to here
    |
    +--> 'cleanup_fd': event 6
           |
           |./include/GenHelpers.h:43:8:
           |   43 |     if (*val)
           |      |        ^
           |      |        |
           |      |        (6) 'creat ("/usr/local/bin/procdumpprofiler.so", 452)' leaks here; was opened at (1)
           |
src/DotnetHelpers.c: In function 'IsCoreClrProcess':
src/DotnetHelpers.c:51:24: error: use of NULL where non-null expected [CWE-476] [-Werror=analyzer-null-argument]
   51 |                     if(strncmp(ptr, tmpFolder, strlen(tmpFolder)) == 0)
      |                        ^
  'LoadProfiler': events 1-3
    |
    |src/ProfilerHelpers.c:62:5:
    |   62 | int LoadProfiler(pid_t pid, char* filter, char* fullDumpPath)
    |      |     ^
    |      |     |
    |      |     (1) entry to 'LoadProfiler'
    |......
    |   70 |     auto_free char* socketName = NULL;
    |      |                     ~
    |      |                     |
    |      |                     (2) 'socketName' is NULL
    |......
    |   76 |     if(!IsCoreClrProcess(pid, &socketName))
    |      |         ~
    |      |         |
    |      |         (3) calling 'IsCoreClrProcess' from 'LoadProfiler'
    |
    +--> 'IsCoreClrProcess': events 4-5
           |
           |src/DotnetHelpers.c:25:6:
           |   25 | bool IsCoreClrProcess(pid_t pid, char** socketName)
           |      |      ^
           |      |      |
           |      |      (4) entry to 'IsCoreClrProcess'
           |......
           |   35 |     tmpFolder = GetSocketPath("dotnet-diagnostic-", pid, 0);
           |      |                 ~
           |      |                 |
           |      |                 (5) calling 'GetSocketPath' from 'IsCoreClrProcess'
           |
           +--> 'GetSocketPath': events 6-9
                  |
                  |src/GenHelpers.c:366:7:
                  |  366 | char* GetSocketPath(char* prefix, pid_t pid, pid_t targetPid)
                  |      |       ^
                  |      |       |
                  |      |       (6) entry to 'GetSocketPath'
                  |......
                  |  375 |         if(targetPid)
                  |      |           ~
                  |      |           |
                  |      |           (7) following 'false' branch (when 'targetPid_15(D) == 0')...
                  |......
                  |  388 |             int len = snprintf(NULL, 0, "/tmp/%s%d", prefix, pid);
                  |      |             ~
                  |      |             |
                  |      |             (8) ...to here
                  |  389 |             t = malloc(len+1);
                  |  390 |             if(t==NULL)
                  |      |               ~
                  |      |               |
                  |      |               (9) following 'true' branch (when 't_23' is NULL)...
                  |
                'GetSocketPath': event 10
                  |
                  |lto1:
                  | (10): ...to here
                  |
           <------+
           |
         'IsCoreClrProcess': events 11-14
           |
           |src/DotnetHelpers.c:35:17:
           |   35 |     tmpFolder = GetSocketPath("dotnet-diagnostic-", pid, 0);
           |      |                 ^
           |      |                 |
           |      |                 (11) returning to 'IsCoreClrProcess' from 'GetSocketPath'
           |......
           |   42 |     if(procFile != NULL)
           |      |       ~
           |      |       |
           |      |       (12) following 'true' branch...
           |   43 |     {
           |   44 |         if(fgets(lineBuf, sizeof(lineBuf), procFile) != NULL)
           |      |         ~ ~
           |      |         | |
           |      |         | (14) following 'true' branch...
           |      |         (13) ...to here
           |
         'IsCoreClrProcess': event 15
           |
           |lto1:
           | (15): ...to here
           |
         'IsCoreClrProcess': events 16-18
           |
           |   46 |             while(fgets(lineBuf, 4096, procFile) != NULL)
           |      |                                                  ^
           |      |                                                  |
           |      |                                                  (16) following 'true' branch...
           |   47 |             {
           |   48 |                 char* ptr = GetPath(lineBuf);
           |      |                 ~           ~
           |      |                 |           |
           |      |                 |           (18) calling 'GetPath' from 'IsCoreClrProcess'
           |      |                 (17) ...to here
           |
           +--> 'GetPath': events 19-23
                  |
                  |src/GenHelpers.c:117:7:
                  |  117 | char* GetPath(char* lineBuf)
                  |      |       ^
                  |      |       |
                  |      |       (19) entry to 'GetPath'
                  |......
                  |  126 |     for(int i=0; i<7; i++)
                  |      |                   ~
                  |      |                   |
                  |      |                   (20) following 'true' branch (when 'i_5 != 7')...
                  |      |                   (22) following 'true' branch (when 'i_5 != 7')...
                  |  127 |     {
                  |  128 |         ptr = strtok(NULL, delim);
                  |      |         ~
                  |      |         |
                  |      |         (21) ...to here
                  |      |         (23) ...to here
                  |
           <------+
           |
         'IsCoreClrProcess': events 24-27
           |
           |src/DotnetHelpers.c:48:29:
           |   48 |                 char* ptr = GetPath(lineBuf);
           |      |                             ^
           |      |                             |
           |      |                             (24) returning to 'IsCoreClrProcess' from 'GetPath'
           |   49 |                 if(ptr!=NULL)
           |      |                   ~
           |      |                   |
           |      |                   (25) following 'true' branch (when 'ptr_29' is non-NULL)...
           |   50 |                 {
           |   51 |                     if(strncmp(ptr, tmpFolder, strlen(tmpFolder)) == 0)
           |      |                     ~  ~
           |      |                     |  |
           |      |                     |  (27) argument 1 ('GetSocketPath ("dotnet-diagnostic-", pid_24(D), 0)') NULL where non-null expected
           |      |                     (26) ...to here
           |
/usr/include/string.h:407:15: note: argument 1 of 'strlen' must be non-null
  407 | extern size_t strlen (const char *__s)
      |               ^
lto1: all warnings being treated as errors
lto-wrapper: fatal error: /usr/bin/gcc returned 1 exit status
MarioHewardt commented 1 year ago

With that PR I was able to finish build however test suite fails on missing .NET. What is it? šŸ¤”

Some of the integration tests target .NET applications and as such we need to have .NET installed as a prerequisite to running the integration tests. https://learn.microsoft.com/en-us/dotnet/core/install/linux

MarioHewardt commented 1 year ago

On building 1.4.1 + master commits I see build failing

These are warnings as a result of turning on static analysis as part of the build process. With each new version of gcc, the static analysis gets better and better and the above are new warnings I haven't encountered before (gcc10). I'll go ahead and add them to the list. In the meantime, you can remove -Werror from the Makefile. You will still see the warnings, but they will not be treated as errors.

kloczek commented 1 year ago

Some of the integration tests target .NET applications and as such we need to have .NET installed as a prerequisite to running the integration tests. https://learn.microsoft.com/en-us/dotnet/core/install/linux

Hmm .. why tool which is for monitoring an application and generating crash dumps needs .NET? šŸ˜‹ is it possible to skip that part? šŸ¤”

MarioHewardt commented 1 year ago

It doesn't need it. When you install ProcDump on any given system, we detect if you are monitoring a .NET application and if so take a more efficient approach in generating the core dump.

What you are encountering above is as a result of running the integration tests. We want to make sure we have great integration test coverage and as such we make sure we have a .NET application running (which requires .NET to be installed) that we can test against. If you skip running the integration tests, you don't need .NET installed to build the binaries and packages.

kloczek commented 1 year ago

OK so how can I disable that part?

BTW did you think about add proper build framework like gnu autotools, cmake or meson? Issuess like missing build dependencies would be not possible to find with use such frameworks.

MarioHewardt commented 1 year ago

Running ProcDump (does not require .NET) sudo procdump ...

Building the ProcDump binaries (does not require .NET) make

Building the ProcDump packages (does not require .NET) make deb | rpm

Running integration tests (requires .NET) make test

There is no way to turn off the .NET tests in the integration test suite since we want to provide a reliable way of making sure changes to ProcDump do not cause any regressions. You can force remove the .NET specific tests locally, but it's not something I would recommend, especially when making changes to the ProcDump code.