Below is the extract of Code, in which i am getting some Possible memory loss in Valgrind Report.
681 int pbsc::PBSCAppMain( int argc, char **argv )
682 {
683 char pbscPath[255];
684 std::string configDir = "/../config/";
685 std::string pbscBinPath = getcwd(pbscPath,255);
686 std::string pbscConfigPath = pbscBinPath + configDir;
687
688
689
690 std::string localConfigFile = pbsc::GetFileNameFromDir(pbscConfigPath, PBSC_LOCAL_CONFIG_FILE);
691 if(false == localConfigFile.empty())
692 {
693 std::string localConfigFileWithPath = pbscConfigPath + localConfigFile;
694 ReadLocalConfiguration(localConfigFileWithPath);
695 }
696
697 std::string loggerConfigFile = pbsc::GetFileNameFromDir(pbscConfigPath, PBSC_LOGGER_CONFIG_FILE);
698 if(false == loggerConfigFile.empty())
699 {
700 std::string loggerConfigFileWithPath = pbscConfigPath + loggerConfigFile;
701 log4cxx::PropertyConfigurator::configureAndWatch(loggerConfigFileWithPath, 20000);
702 }
703
Below is the error what i am getting from Valgrind
==4594==
==4594== 67 bytes in 1 blocks are possibly lost in loss record 754 of 1,141
==4594== at 0x4A075BC: operator new(unsigned long) (vg_replace_malloc.c:298)
==4594== by 0x5812CA8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (new_allocator.h:104)
==4594== by 0x581387A: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (basic_string.tcc:629)
==4594== by 0x5813913: std::string::reserve(unsigned long) (basic_string.tcc:510)
==4594== by 0x58139B7: std::string::append(std::string const&) (basic_string.tcc:332)
==4594== by 0x455446: std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (basic_string.h:2369)
==4594== by 0x45ED5F: pbsc::PBSCAppMain(int, char**) (PBSCApp.cpp:686)
==4594== by 0x45EC9B: main (PBSCApp.cpp:677)
==4594==
My Question is when control leave this function why still memory is associated to this function? I am calling this function number of times that's why my program size keeps on growing.
Please suggest where exactly i am doing mistake.
Thanks.
Aucun commentaire:
Enregistrer un commentaire