2014-11-07 2 views
0

포트란 프로그램에서 메모리 누수를 검색하려면 valgrind-3.10.0을 실행하십시오. OS X 10.9.5에서 컴파일하기 위해 gfortran-4.9.0을 사용하고 있습니다. 아래 출력에서 ​​알 수 있듯이 메모리 누수는 gfortran 라이브러리에 있습니다. 나 맞아? 그렇다면 내가 할 수있는 일이 있습니까?valgrind 출력이 gfortran 라이브러리에 있음

HEAP SUMMARY: 
==30650==  in use at exit: 25,727 bytes in 390 blocks 
==30650== total heap usage: 34,130 allocs, 33,740 frees, 11,306,357 bytes allocated 
==30650== 
==30650== Searching for pointers to 390 not-freed blocks 
==30650== Checked 9,113,592 bytes 
==30650== 
==30650== 72 (36 direct, 36 indirect) bytes in 1 blocks are definitely lost in loss record 52 of 84 
==30650== at 0x47E1: malloc (vg_replace_malloc.c:300) 
==30650== by 0x345AB0: __Balloc_D2A (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0x345CF6: __i2b_D2A (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0x34362E: __dtoa (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0x36A8A9: __vfprintf (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0x3912DA: __v2printf (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0x376F66: _vsnprintf (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0x376FC5: vsnprintf_l (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0x3674DC: snprintf (in /usr/lib/system/libsystem_c.dylib) 
==30650== by 0xE2F6D: write_float (in /usr/local/gfortran/lib/libgfortran.3.dylib) 
==30650== by 0xE53A4: _gfortrani_write_real (in /usr/local/gfortran/lib/libgfortran.3.dylib) 
==30650== by 0x3FA9999999999999: ??? 
==30650== 
==30650== LEAK SUMMARY: 
==30650== definitely lost: 36 bytes in 1 blocks 
==30650== indirectly lost: 36 bytes in 1 blocks 
==30650==  possibly lost: 0 bytes in 0 blocks 
==30650== still reachable: 316 bytes in 7 blocks 
==30650==   suppressed: 25,339 bytes in 381 blocks 
==30650== Reachable blocks (those to which a pointer was found) are not shown. 
==30650== To see them, rerun with: --leak-check=full --show-leak-kinds=all 
==30650== 
==30650== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 15 from 15) 
--30650-- 
--30650-- used_suppression:  34 OSX109:6-Leak /usr/local/lib/valgrind/default.supp:797 suppressed: 13,656 bytes in 252 blocks 
--30650-- used_suppression:  1 OSX109:1-Leak /usr/local/lib/valgrind/default.supp:747 suppressed: 2,064 bytes in 1 blocks 
--30650-- used_suppression:  13 OSX109:7-Leak /usr/local/lib/valgrind/default.supp:808 suppressed: 7,181 bytes in 78 blocks 
--30650-- used_suppression:  11 OSX109:10-Leak /usr/local/lib/valgrind/default.supp:839 suppressed: 1,669 bytes in 29 blocks 
--30650-- used_suppression:  10 OSX109:9-Leak /usr/local/lib/valgrind/default.supp:829 suppressed: 609 bytes in 15 blocks 
--30650-- used_suppression:  5 OSX109:5-Leak /usr/local/lib/valgrind/default.supp:787 suppressed: 144 bytes in 5 blocks 
--30650-- used_suppression:  1 OSX109:3-Leak /usr/local/lib/valgrind/default.supp:765 suppressed: 16 bytes in 1 blocks 
==30650== 
==30650== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 15 from 15) 

답변

0

이것은 gfortran 라이브러리의 버그 일 수 있습니다.

최선의 방법은 자체 테스트 케이스로 줄이고 [email protected]의 gfortran 개발자에게보고하거나 http://www.gnu.org/bugzilla에 버그 신고서를 제출하는 것입니다.