‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Memory leak



==4220==
==4220== HEAP SUMMARY:
==4220== in use at exit: 1,200 bytes in 2 blocks
==4220== total heap usage: 28 allocs, 26 frees, 17,969 bytes allocated
==4220==
==4220== 400 bytes in 1 blocks are still reachable in loss record 1 of 2
==4220== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4220== by 0x4C2CF1F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4220== by 0x400E60: yygrowstack.constprop.0 (y.tab.c:273)
==4220== by 0x400F2B: yyparse (y.tab.c:332)
==4220== by 0x400C91: main (yyparse-test.c:63)
==4220==
==4220== 800 bytes in 1 blocks are still reachable in loss record 2 of 2
==4220== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4220== by 0x4C2CF1F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4220== by 0x400E92: yygrowstack.constprop.0 (y.tab.c:280)
==4220== by 0x400F2B: yyparse (y.tab.c:332)
==4220== by 0x400C91: main (yyparse-test.c:63)
==4220==
==4220== LEAK SUMMARY:
==4220== definitely lost: 0 bytes in 0 blocks
==4220== indirectly lost: 0 bytes in 0 blocks
==4220== possibly lost: 0 bytes in 0 blocks
==4220== still reachable: 1,200 bytes in 2 blocks
==4220== suppressed: 0 bytes in 0 blocks



Не, ну это ж ваще. В моём коде не течёт, а в сгенерированном почтеннейшей утилитой BYACC - течёт. Нашёл там где-то рядом:

#if YYPURE || defined(YY_NO_LEAKS)
static void yyfreestack(YYSTACKDATA *data)
{
free(data->s_base);
free(data->l_base);
memset(data, 0, sizeof(*data));
}
#else
#define yyfreestack(data) /* nothing */
#endif


Загадочно.

Проблему решил использованием GNU Bison вместо Byacc.
Subscribe

  • (no subject)

    Как я застукал бычка (?) за вылазкой из норки

  • Hi-res/Crop

    Сейчас разглядел, насколько по-разному они выглядят. Может, это три разных представителя трёх разных видов крабов? Второго я нашёл вот…

  • Hi-res/Crop/Resize

    Был не очень прав насчёт этих таракашек - они есть, но теперь гораздо дальше от берега, чем раньше. Пришлось очень хорошо понырять, чтобы найти…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments