From c668d6c4eccb3619cc46795f6ed06114c42ead0b Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 12 Sep 2020 21:11:59 +0300 Subject: [PATCH] trace RCC execution --- .github/workflows/codeql-analysis.yml | 2 +- CMakeLists.txt | 4 ++-- cmake/modules/KatieBuildMacros.cmake | 2 +- cmake/trace.sh.cmake | 18 ++++++++++++++++++ src/tools/rcc/rccmain.cpp | 9 --------- 5 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 cmake/trace.sh.cmake diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 3bb9fa95a..4cc03225e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: - name: Install dependencies run: | sudo apt-get update -qq - sudo apt-get install -qq libpcre3-dev libssl-dev zlib1g-dev libzstd-dev libc6-dev libpng-dev libjpeg-dev libtiff-dev libcups2-dev libfreetype6-dev libfontconfig1-dev libdbus-1-dev libicu-dev unixodbc-dev libpq-dev libpqtypes-dev libmysqld-dev libaio-dev libwrap0-dev liblz4-dev libsqlite3-dev libunwind-dev xorg-dev + sudo apt-get install -qq ltrace libpcre3-dev libssl-dev zlib1g-dev libzstd-dev libc6-dev libpng-dev libjpeg-dev libtiff-dev libcups2-dev libfreetype6-dev libfontconfig1-dev libdbus-1-dev libicu-dev unixodbc-dev libpq-dev libpqtypes-dev libmysqld-dev libaio-dev libwrap0-dev liblz4-dev libsqlite3-dev libunwind-dev xorg-dev # If this run was triggered by a pull request event, then checkout # the head of the pull request instead of the merge commit. diff --git a/CMakeLists.txt b/CMakeLists.txt index 64a489542..9504533a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,7 +67,7 @@ elseif(CMAKE_HOST_SYSTEM_PROCESSOR) string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" KATIE_PROCESSOR) endif() -# used as shebang for profile, exec and dbg scripts +# used as shebang for profile, exec, dbg and trace scripts find_program(KATIE_SHELL NAMES sh dash mksh ksh ash) if(NOT KATIE_SHELL) message(FATAL_ERROR "Could not detect shell, supported are: sh, dash, mksh, ksh and ash") @@ -428,7 +428,7 @@ if(KATIE_TESTS OR KATIE_BENCHMARKS) add_definitions(-DQT_BUILD_INTERNAL) endif() -foreach(script exec dbg) +foreach(script exec dbg trace) configure_file( ${CMAKE_SOURCE_DIR}/cmake/${script}.sh.cmake ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${script}.sh diff --git a/cmake/modules/KatieBuildMacros.cmake b/cmake/modules/KatieBuildMacros.cmake index 8020a37d6..537017b60 100644 --- a/cmake/modules/KatieBuildMacros.cmake +++ b/cmake/modules/KatieBuildMacros.cmake @@ -235,7 +235,7 @@ function(KATIE_SETUP_TARGET FORTARGET) set(targetresources ${targetresources} "${rscout}") make_directory("${rscpath}") add_custom_command( - COMMAND "${CMAKE_BINARY_DIR}/exec.sh" "${CMAKE_BINARY_DIR}/bin/${KATIE_RCC}${KATIE_TOOLS_SUFFIX}" "${resource}" -o "${rscout}" -name "${rscname}" + COMMAND "${CMAKE_BINARY_DIR}/trace.sh" "${CMAKE_BINARY_DIR}/bin/${KATIE_RCC}${KATIE_TOOLS_SUFFIX}" "${resource}" -o "${rscout}" -name "${rscname}" DEPENDS "${KATIE_RCC}" OUTPUT "${rscout}" ) diff --git a/cmake/trace.sh.cmake b/cmake/trace.sh.cmake new file mode 100644 index 000000000..e92ab0dbf --- /dev/null +++ b/cmake/trace.sh.cmake @@ -0,0 +1,18 @@ +#!@KATIE_SHELL@ + +set -e + +if [ -z "$LD_LIBRARY_PATH" ];then + export LD_LIBRARY_PATH="@CMAKE_BINARY_DIR@/lib" +else + export LD_LIBRARY_PATH="@CMAKE_BINARY_DIR@/lib:$LD_LIBRARY_PATH" +fi +export QTDIR="@CMAKE_SOURCE_DIR@" +export QT_PLUGIN_PATH="@CMAKE_BINARY_DIR@/plugins" +export QML_IMPORT_PATH="@CMAKE_BINARY_DIR@/imports" + +bin="$1" +shift + +cd "$(dirname "$bin")" +exec ltrace @KATIE_CROSS_EXEC@ "./$(basename "$bin")" $@ diff --git a/src/tools/rcc/rccmain.cpp b/src/tools/rcc/rccmain.cpp index c3c15c24c..e3ee81de2 100644 --- a/src/tools/rcc/rccmain.cpp +++ b/src/tools/rcc/rccmain.cpp @@ -133,16 +133,13 @@ int runRcc(int argc, char *argv[]) bool projectRequested = false; QStringList filenamesIn; - printf("args"); QStringList args; for (int i = 0; i != argc; ++i) args += QString::fromLocal8Bit(argv[i]); - printf("lib"); RCCResourceLibrary library; // parse options - printf("parse options"); QString errorMsg; for (int i = 1; i < args.count() && errorMsg.isEmpty(); i++) { if (args[i].isEmpty()) @@ -220,23 +217,18 @@ int runRcc(int argc, char *argv[]) showHelp(errorMsg); return 1; } - - printf("errorDevice"); QFile errorDevice; errorDevice.open(stderr, QIODevice::WriteOnly|QIODevice::Text); if (library.verbose()) errorDevice.write("Katie resource compiler\n"); - printf("setInputFiles"); library.setInputFiles(filenamesIn); - printf("readFiles"); if (!library.readFiles(list, errorDevice)) return 1; // open output - printf("open output"); QFile out; QIODevice::OpenMode mode = QIODevice::WriteOnly; if (library.format() == RCCResourceLibrary::C_Code) @@ -263,7 +255,6 @@ int runRcc(int argc, char *argv[]) return 0; } - printf("library output"); return library.output(out, errorDevice) ? 0 : 1; }