I'm using the following code to create the events in C++. Everything is working, but valgrind is reporting memory leak on line 08.
I suppose that the library is allocating some memory on arg structure that needs to be freed. What should I free? string name; bool started; pfm_perf_encode_arg_t arg; perf_event_attr hw; int fd; 01 int ret; 02 memset(&arg, 0, sizeof(arg)); 03 memset(&hw, 0, sizeof(hw)); 04 arg.attr = &hw; 05 06 started = false; 07 prevValue = value = 0; 08 ret = pfm_get_os_event_encoding(name.c_str(), PFM_PLM0|PFM_PLM3|PFM_PLMH, PFM_OS_PERF_EVENT_EXT, &arg); 09 if (ret != PFM_SUCCESS) { 10 stringstream msgStr; 11 msgStr << "event " << name << ": " << pfm_strerror(ret) << endl; 12 throw msgStr.str(); 13 } 14 15 // ABI compatibility 16 hw.size = sizeof(struct perf_event_attr); 17 18 // Setup steps 19 fd = -1; 20 hw.disabled = 1; 21 hw.read_format = PERF_FORMAT_SCALE; 22 fd = perf_event_open(&hw, -1, cpu, -1, 0); 23 if (fd == - 1) { 24 stringstream msgStr; 25 msgStr << "cannot attach event to CPU" << cpu << " " << name << endl; 26 throw msgStr.str(); 27 } Here is the valgind output: ==3482== 576 bytes in 2 blocks are definitely lost in loss record 1 of 1 ==3482== at 0x4025230: malloc (vg_replace_malloc.c:236) ==3482== by 0x407BB3E: pfmlib_build_event_pattrs (pfmlib_common.c:794) ==3482== by 0x407C0BB: pfmlib_parse_event (pfmlib_common.c:972) ==3482== by 0x407FA72: pfmlib_perf_event_encode (pfmlib_perf_event.c:90) ==3482== by 0x407C34C: pfm_get_os_event_encoding (pfmlib_common.c:1108) ==3482== by 0x804E5BA: Event::Event(int, std::string const&) (Event.cpp:64) ... ==3482== LEAK SUMMARY: ==3482== definitely lost: 576 bytes in 2 blocks ==3482== indirectly lost: 0 bytes in 0 blocks ==3482== possibly lost: 0 bytes in 0 blocks ==3482== still reachable: 0 bytes in 0 blocks ==3482== suppressed: 0 bytes in 0 blocks Thank you -- Leonardo ------------------------------------------------------------------------------ uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel