From 4d69b6d3a187b3e28ee1182f5249708fdd10cb07 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 11 Oct 2018 14:43:32 +0200 Subject: [PATCH 1/3] added address sanitizer for debug mode --- CMakeLists.txt | 3 +++ slsDetectorSoftware/slsDetector/slsDetector.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 55f8074bd..056a65561 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,9 @@ else () set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11") endif () +set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") +set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") + find_package(Qt4) find_package(Qwt 6) find_package(CBF) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index e0a076e72..8b26d8f89 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1076,7 +1076,7 @@ int slsDetector::setOnline(int off) { std::string slsDetector::checkOnline() { - std::string retval=""; + std::string retval; if(!controlSocket){ //this already sets the online/offline flag setTCPSocket(); From 316ba01297da8d4e9e3d6e34bc4837eb9942a2db Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 11 Oct 2018 15:19:26 +0200 Subject: [PATCH 2/3] size of writeConfigFile --- .../multiSlsDetector/multiSlsDetector.cpp | 9 +++------ slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 0fba62814..def49c27f 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1019,27 +1019,24 @@ int multiSlsDetector::readConfigurationFile(std::string const fname) { } -int multiSlsDetector::writeConfigurationFile(std::string const fname) { - std::string names[] = { +int multiSlsDetector::writeConfigurationFile(const std::string& fname) { + const std::vector names = { "detsizechan", "hostname", "outdir", "threaded" }; - int nvar = 15; char* args[100]; for (int ia = 0; ia < 100; ++ia) { args[ia] = new char[1000]; } int ret = OK, ret1 = OK; - std::ofstream outfile; int iline = 0; outfile.open(fname.c_str(), std::ios_base::out); if (outfile.is_open()) { - auto cmd = slsDetectorCommand(this); // complete size of detector @@ -1066,7 +1063,7 @@ int multiSlsDetector::writeConfigurationFile(std::string const fname) { outfile << std::endl; //other configurations - while (iline < nvar) { + while (iline < names.size()) { std::cout << iline << " " << names[iline] << std::endl; strcpy(args[0], names[iline].c_str()); outfile << names[iline] << " " << cmd.executeLine(1, args, GET_ACTION) << std::endl; diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 1ac67ecb5..1ed6b7fa4 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -475,7 +475,7 @@ public: * @param fname configuration file name * @returns OK or FAIL */ - int writeConfigurationFile(std::string const fname); + int writeConfigurationFile(const std::string& fname); /** * Returns the trimfile or settings file name (Useless??) From f806759af33f118fd3930dba2eb55ed05b07a7a9 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 11 Oct 2018 15:25:29 +0200 Subject: [PATCH 3/3] const string& --- .../multiSlsDetector/multiSlsDetector.cpp | 10 +++++----- .../multiSlsDetector/multiSlsDetector.h | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index def49c27f..e8f087826 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -936,7 +936,7 @@ int multiSlsDetector::execCommand(std::string cmd, int detPos) { } -int multiSlsDetector::readConfigurationFile(std::string const fname) { +int multiSlsDetector::readConfigurationFile(const std::string& fname) { freeSharedMemory(); setupMultiDetector(); @@ -1902,7 +1902,7 @@ int multiSlsDetector::digitalTest(digitalTestMode mode, int ival, int detPos) { } -int multiSlsDetector::loadImageToDetector(imageType index, std::string const fname, int detPos) { +int multiSlsDetector::loadImageToDetector(imageType index, const std::string& fname, int detPos) { // single if (detPos >= 0) { return detectors[detPos]->loadImageToDetector(index, fname); @@ -1930,7 +1930,7 @@ int multiSlsDetector::loadImageToDetector(imageType index, std::string const fna } -int multiSlsDetector::writeCounterBlockFile(std::string const fname, int startACQ, int detPos) { +int multiSlsDetector::writeCounterBlockFile(const std::string& fname, int startACQ, int detPos) { // single if (detPos >= 0) { return detectors[detPos]->writeCounterBlockFile(fname, startACQ); @@ -3511,7 +3511,7 @@ int multiSlsDetector::setCTBPatWaitTime(int level, uint64_t t, int detPos) { } -int multiSlsDetector::retrieveDetectorSetup(std::string const fname1, int level){ +int multiSlsDetector::retrieveDetectorSetup(const std::string& fname1, int level){ int skip=0; std::string fname; @@ -3594,7 +3594,7 @@ int multiSlsDetector::retrieveDetectorSetup(std::string const fname1, int level) } -int multiSlsDetector::dumpDetectorSetup(std::string const fname, int level){ +int multiSlsDetector::dumpDetectorSetup(const std::string& fname, int level){ detectorType type = getDetectorsType(); std::string names[100]; int nvar=0; diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 1ed6b7fa4..293c91be7 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -468,7 +468,7 @@ public: * @param fname configuration file name * @return OK or FAIL */ - int readConfigurationFile(std::string const fname); + int readConfigurationFile(const std::string& fname); /** * Write current configuration to a file @@ -929,7 +929,7 @@ public: * @param detPos -1 for all detectors in list or specific detector position * @returns OK or FAIL */ - int loadImageToDetector(imageType index,std::string const fname, int detPos = -1); + int loadImageToDetector(imageType index, const std::string& fname, int detPos = -1); /** * Writes the counter memory block from the detector (Gotthard) @@ -938,7 +938,7 @@ public: * @param detPos -1 for all detectors in list or specific detector position * @returns OK or FAIL */ - int writeCounterBlockFile(std::string const fname,int startACQ=0, int detPos = -1); + int writeCounterBlockFile(const std::string& fname,int startACQ=0, int detPos = -1); /** * Resets counter in detector (Gotthard) @@ -1516,7 +1516,7 @@ public: * from files with default extensions as generated by dumpDetectorSetup * @returns OK or FAIL */ - int retrieveDetectorSetup(std::string const fname, int level=0); + int retrieveDetectorSetup(const std::string& fname, int level=0); /** * Saves the detector setup to file @@ -1525,7 +1525,7 @@ public: * and writes them to files with automatically added extension * @returns OK or FAIL */ - int dumpDetectorSetup(std::string const fname, int level=0); + int dumpDetectorSetup(const std::string& fname, int level=0); /** * register callback for accessing acquisition final data