diff --git a/Utilities/ReleaseScripts/test/BuildFile.xml b/Utilities/ReleaseScripts/test/BuildFile.xml
index 3107c6ccb9ac9..52984d549a8bf 100644
--- a/Utilities/ReleaseScripts/test/BuildFile.xml
+++ b/Utilities/ReleaseScripts/test/BuildFile.xml
@@ -1,6 +1,12 @@
+
+
+
+
+
+
diff --git a/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.cpp b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.cpp
new file mode 100644
index 0000000000000..59f77053aefc6
--- /dev/null
+++ b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.cpp
@@ -0,0 +1,26 @@
+#include
+#include
+#include
+
+class ScheduleItems {
+public:
+ ScheduleItems() {}
+ void initMisc();
+};
+
+void ScheduleItems::initMisc() { std::cout << "ScheduleItems::initMisc() called" << std::endl; }
+
+void my_setenv(const char* env, const char* value) {
+ setenv(env, value, 1);
+ std::cout << "setenv() called" << std::endl;
+ std::cout << env << "=" << std::getenv(env) << std::endl;
+}
+
+int main() {
+ my_setenv("FOO", "1");
+ ScheduleItems obj;
+ obj.initMisc();
+ my_setenv("FOO", "2");
+ my_setenv("FOO", "3");
+ return 0;
+}
diff --git a/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.sh b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.sh
new file mode 100755
index 0000000000000..061324ff032b0
--- /dev/null
+++ b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.sh
@@ -0,0 +1,9 @@
+#!/bin/bash -ex
+g++ -o test-cmsTraceFunction-setenv $(dirname $0)/test-cmsTraceFunction-setenv.cpp
+cmsTraceFunction --startAfterFunction ScheduleItems::initMisc setenv ./test-cmsTraceFunction-setenv 2>&1 | grep setenv > setenv.log
+rm -f test-cmsTraceFunction-setenv
+setenv_count=$(grep '^setenv() called' setenv.log | wc -l)
+break_setenv=$(grep 'Breakpoint .* in setenv ()' setenv.log | wc -l)
+if [ ${setenv_count} != 3 ] || [ ${break_setenv} != 2 ] ; then
+ exit 1
+fi
diff --git a/Utilities/ReleaseScripts/test/gdb/test-gdb-python.sh b/Utilities/ReleaseScripts/test/gdb/test-gdb-python.sh
new file mode 100755
index 0000000000000..eefff31e722bd
--- /dev/null
+++ b/Utilities/ReleaseScripts/test/gdb/test-gdb-python.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -ex
+gdb_python=$(gdb -q -ex 'python exec("import sys;print(sys.executable)")' -ex quit)
+cmssw_python=$(scram tool tag python3 PYTHON3_BASE)/bin
+cmssw_python=$(realpath ${cmssw_python})/python
+if [ "${gdb_python}" != "${cmssw_python}" ] ; then
+ echo "python used by GDB and CMSSW are not same"
+ exit 1
+else
+ echo "CMSSW/GDB python OK"
+fi