Opened 3 years ago

Closed 3 years ago

#158 closed ожидается проверка (задача сдана)

WW_intrusive_list Panenkov lab_04

Reported by: Semyon Panenkov Owned by: Антон Филатов
Component: WW_intrusive_list Version: 2.0
Keywords: Cc:

Description

Я прошу прощение за то, что просрочил дедлайн. Но у меня есть интересная задача из области "шиза". Прикрепил картинку. Ответ на загадку: почистить кэш valgrind. Как до этого догадаться? 2 часа пытаться локализовать ошибку, пока не код не сократится до одной строки.

Attachments (1)

photo_2020-12-03_02-26-11.jpg (20.8 KB) - added by Semyon Panenkov 3 years ago.
Вывод Valgrind

Download all attachments as: .zip

Change History (4)

Changed 3 years ago by Semyon Panenkov

Вывод Valgrind

comment:1 Changed 3 years ago by Антон Филатов

Type: ожидается проверкаожидаются исправления

Я прошу прощение за то, что просрочил дедлайн.

ничего страшного. вы же знаете, что я проверяю утром четверга. Так что раз вы успели - всё нормально. Только остальным не говорите, а то мне не очень хочется ловить новые тикеты прямо во время проверки существующих

Но у меня есть интересная задача из области "шиза". Прикрепил картинку. Ответ на загадку: почистить кэш valgrind. Как до этого догадаться? 2 часа пытаться локализовать ошибку, пока не код не сократится до одной строки.

Да, ошибка мощная, ничего не скажешь. Сочувствую вам :)

Корректность:
каждый тест падает с одинаковой и всегда ровно одной ошибкой валгринда на утечку 40 байт. Сдаётся мне, что раз 40 байт не меняются от теста к тесту, то это что-то из main.
Формально я должен поставить 0 за корректность, но мне жалко это делать из-за такой мелочи. Поэтому пока 4/8, но фиксится это быстро

Стиль:

  • make пересобирает проект, даже если в нём ничего не изменилось
  • вы сами поставили ключ -pedantic и -Wall, но не избавились от всех ворнингов - нехорошо
  • А вы решили воспользовать fgets по какой-то особой причине? или вы так поняли задание, что scanf-м пользоваться нельзя? так вот scanf-м можно пользоваться. Но есть с fgets-м работает, то и славно
  • container_of место, навреное, в main, а не в clist.h. Он же только в main используется

2,5/4
Итого 6,5/12

comment:2 Changed 3 years ago by Semyon Panenkov

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

В общем я так и не понял, что за проблема у меня с valgrind на маке, поэтому я всё протестировал на линуксовом серваке. Утечку нашёл и исправил, был return до освобождения памяти на команде exit.

Ещё забавный момент с make, на маке он не пересобирал проект без изменений, а на линуксе пересобирал. Поэтому со следующей лабы я переезжаю на CMake.

Ну с container_of мы обсудили на паре.

По поводу ворнингов. У меня были неиспользуемые параметры в некоторых обработчиках команд, но я не мог от них избавиться, потому что все обработчики команд должны быть с одинаковой сигнатурой, чтобы я мог положить их в массив. Я просто отключил этот флаг. Ну и ещё у меня была неправильная сигнатура у main.

fgets я использую, чтобы просто считать строку, а потом удобно её разбить на токены и обрабатывать по-отдельности. Так я смог относительно легко реализовать полную проверку правильности команд.

comment:3 Changed 3 years ago by Антон Филатов

Resolution: задача сдана
Status: assignedclosed

Тесты пройдены 8/8
стиль: 4/4
12/12

Note: See TracTickets for help on using tickets.