Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Coverage fails due to an error message in profmerge

Volkan_G_
Beginner
387 Views

Hello,

We are using intel's coverage tool for coverage tests and at the step where profmerge is called to generate DPI files from DYN, we get the following message:

*** glibc detected *** profmerge: double free or corruption (!prev): 0x0000000004a6d6d0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x78b66)[0x7f9953da2b66]
/lib64/libc.so.6(fclose+0x14d)[0x7f9953d9354d]
profmerge[0x44a106]
profmerge[0x405855]
profmerge[0x4024a1]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f9953d4b455]
profmerge[0x40213a]
======= Memory map: ========
00400000-00530000 r-xp 00000000 08:11 15736839                           /home/soft/Intel/composer_xe_2011_sp1.7.256/bin/intel64/profmerge
00630000-006a0000 rw-p 00130000 08:11 15736839                           /home/soft/Intel/composer_xe_2011_sp1.7.256/bin/intel64/profmerge
006a0000-006ab000 rw-p 00000000 00:00 0
018d2000-0656c000 rw-p 00000000 00:00 0                                  [heap]
7f9953d2a000-7f9953ec5000 r-xp 00000000 08:01 1179709                    /lib64/libc-2.15.so
7f9953ec5000-7f99540c5000 ---p 0019b000 08:01 1179709                    /lib64/libc-2.15.so
7f99540c5000-7f99540c9000 r--p 0019b000 08:01 1179709                    /lib64/libc-2.15.so
7f99540c9000-7f99540cb000 rw-p 0019f000 08:01 1179709                    /lib64/libc-2.15.so
7f99540cb000-7f99540cf000 rw-p 00000000 00:00 0
7f99540cf000-7f99540e4000 r-xp 00000000 08:01 1179751                    /lib64/libgcc_s.so.1
7f99540e4000-7f99542e3000 ---p 00015000 08:01 1179751                    /lib64/libgcc_s.so.1
7f99542e3000-7f99542e4000 r--p 00014000 08:01 1179751                    /lib64/libgcc_s.so.1
7f99542e4000-7f99542e5000 rw-p 00015000 08:01 1179751                    /lib64/libgcc_s.so.1
7f99542e5000-7f99543cd000 r-xp 00000000 08:01 2756316                    /usr/lib64/libstdc++.so.6.0.17
7f99543cd000-7f99545cd000 ---p 000e8000 08:01 2756316                    /usr/lib64/libstdc++.so.6.0.17
7f99545cd000-7f99545d5000 r--p 000e8000 08:01 2756316                    /usr/lib64/libstdc++.so.6.0.17
7f99545d5000-7f99545d7000 rw-p 000f0000 08:01 2756316                    /usr/lib64/libstdc++.so.6.0.17
7f99545d7000-7f99545ec000 rw-p 00000000 00:00 0
7f99545ec000-7f99545ef000 r-xp 00000000 08:01 1179651                    /lib64/libdl-2.15.so
7f99545ef000-7f99547ee000 ---p 00003000 08:01 1179651                    /lib64/libdl-2.15.so
7f99547ee000-7f99547ef000 r--p 00002000 08:01 1179651                    /lib64/libdl-2.15.so
7f99547ef000-7f99547f0000 rw-p 00003000 08:01 1179651                    /lib64/libdl-2.15.so
7f99547f0000-7f99548e5000 r-xp 00000000 08:01 1179670                    /lib64/libm-2.15.so
7f99548e5000-7f9954ae5000 ---p 000f5000 08:01 1179670                    /lib64/libm-2.15.so
7f9954ae5000-7f9954ae6000 r--p 000f5000 08:01 1179670                    /lib64/libm-2.15.so
7f9954ae6000-7f9954ae7000 rw-p 000f6000 08:01 1179670                    /lib64/libm-2.15.so
7f9954ae7000-7f9954b08000 r-xp 00000000 08:01 1179934                    /lib64/ld-2.15.so
7f9954cdf000-7f9954ce5000 rw-p 00000000 00:00 0
7f9954d02000-7f9954d04000 rw-p 00000000 00:00 0
7f9954d04000-7f9954d07000 r--p 00000000 08:11 15861271                   /home/soft/Intel/composer_xe_2011_sp1.7.256/compiler/lib/intel64/locale/en_US/diagspt.cat
7f9954d07000-7f9954d08000 rw-p 00000000 00:00 0
7f9954d08000-7f9954d09000 r--p 00021000 08:01 1179934                    /lib64/ld-2.15.so
7f9954d09000-7f9954d0a000 rw-p 00022000 08:01 1179934                    /lib64/ld-2.15.so
7f9954d0a000-7f9954d0b000 rw-p 00000000 00:00 0
7fff7bb79000-7fff7bb9c000 rw-p 00000000 00:00 0                          [stack]
7fff7bbff000-7fff7bc00000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted

How can we solve this problem? We have approximately 450 dyn files.

Thank you.

0 Kudos
1 Solution
Georg_Z_Intel
Employee
387 Views

Hello,

I've created an article for further information:

http://software.intel.com/en-us/articles/profmerge-fail-glibc-detected-profmerge-double-free-or-corruption

The ticket created for that is DPD200516926. Once fixed I'll update this thread.

Thank you for reporting & best regards,

Georg Zitzlsberger

View solution in original post

0 Kudos
5 Replies
Georg_Z_Intel
Employee
387 Views

Hello,

that's a little bit tricky to reproduce on our side because the merging depends on the DYN files.

I'd like to ask you to try to find a minimal subset of DYN files that still shows the exact problem. If you could then provide me a ZIP/TAR file with those DYN files would would help us to debug the problem in profmerge. Please send me a direct message via "Send author a message", so you don't disclose those files.

Please also let me know which OS you're using, whether it's 32 or 64 bit, and the exact Composer XE version.

Thank you in advance & best regards,

Georg Zitzlsberger

0 Kudos
Volkan_G_
Beginner
387 Views

Hello,

We have found the problem. After you said to minimize the DYN files to run profmerge, we found one of the DYN files had size of 0 bytes. Removing it solved the problem.

EDIT:

We are using openSUSE 12.2 64 bit with XE 12.1.0

0 Kudos
Georg_Z_Intel
Employee
388 Views

Hello,

I've created an article for further information:

http://software.intel.com/en-us/articles/profmerge-fail-glibc-detected-profmerge-double-free-or-corruption

The ticket created for that is DPD200516926. Once fixed I'll update this thread.

Thank you for reporting & best regards,

Georg Zitzlsberger

0 Kudos
Georg_Z_Intel
Employee
387 Views

Hello,

Intel(R) Composer XE 2013 SP1 Update 3 (and later) will have a fix for the reported problem.

Best regards,

Georg Zitzlsberger

0 Kudos
Volkan_G_
Beginner
387 Views

Hello,

Thank you for solving this issue.

Best regards,

0 Kudos
Reply