Size: a a a

2020 June 03

TS

Till Schneider in pro.cxx
Kitnerboy Redoubt
Начал с наиболее популярного.
asan сейчас намного популярнее в современном мире
источник

K

Kitnerboy Redoubt in pro.cxx
Till Schneider
asan сейчас намного популярнее в современном мире
Спасибо, попробую. В поисках альтернатив даже не попадался он.
источник

IS

Iskander Saitbatalov in pro.cxx
Я в свое время заметил, что valgrind + линкер lld плохо дружат. Названия функций теряются. Но это вроде не ваш случай.
источник

AB

Alex Belov in pro.cxx
а зачем вы используете всякий  шлак типа валгринда когда в visual studio уже  есть норм профайлер
источник

IS

Iskander Saitbatalov in pro.cxx
Alex Belov
а зачем вы используете всякий  шлак типа валгринда когда в visual studio уже  есть норм профайлер
Не знаю даже, просто иногда под Linux хочется что-то пописать
источник

АК

Александр Караев... in pro.cxx
Alex Belov
а зачем вы используете всякий  шлак типа валгринда когда в visual studio уже  есть норм профайлер
хз, кому нужны все эти анализаторы, если программист может в голове отдебажить программу и найти утечки
источник

IS

Iskander Saitbatalov in pro.cxx
Александр Караев
хз, кому нужны все эти анализаторы, если программист может в голове отдебажить программу и найти утечки
Сыглы
источник

AB

Alex Belov in pro.cxx
Александр Караев
хз, кому нужны все эти анализаторы, если программист может в голове отдебажить программу и найти утечки
да откуда ж утечкам то взяться когда все на смарт поинтерах
источник

PK

Pavel Kazakov in pro.cxx
Alex Belov
да откуда ж утечкам то взяться когда все на смарт поинтерах
это гарантия какая-то? :3 неа, это просто более удобный инструмент
источник

MV

Mikhail Voronov in pro.cxx
Kitnerboy Redoubt
Здравствуйте.
Есть один valgrind, и я не могу понять, почему он не показывает источники вызова malloc.
На всех примерах использования и в мануале вижу такие примеры вывода:
8 bytes in 1 blocks are definitely lost in loss record 1 of 14
  at 0x........: malloc (vg_replace_malloc.c:...)
  by 0x........: mk (leak-tree.c:11)
  by 0x........: main (leak-tree.c:39)

Сам же на простой программе, которая выделяет память и потом не освобождает получаю совершенно неподробный вывод, указано только расположение самого подмененного malloc :
==621== 
==621== 4,000 bytes in 1 blocks are definitely lost in loss record 1 of 1
==621==    at 0x4815BEC: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==621==

Перепроверял наличие -g флага при сборке, пересобирал последнюю версию valgrind.
При этом другие ошибки вроде разыменование неинициализированного указателя указываются вместе со строкой, на которой оно было вызвано.
Работать всё это должно на arm системе, может из-за этого проблема?
программа не статически слинкована случайно?
источник

IS

Iskander Saitbatalov in pro.cxx
Alex Belov
да откуда ж утечкам то взяться когда все на смарт поинтерах
В общем это самое.
источник

K

Kitnerboy Redoubt in pro.cxx
Mikhail Voronov
программа не статически слинкована случайно?
Тестовая программа точно нет.
источник

K

Kitnerboy Redoubt in pro.cxx
Основное подозрение - valgrind при кросс-компиляции собираеся как-то не так, и в итоге я имею то, что имею.
источник

K

Kitnerboy Redoubt in pro.cxx
Till Schneider
asan сейчас намного популярнее в современном мире
А нормально, что он не детектит никак подобное?:
int main() {
 p = malloc(7);
 p = 0; // The memory is leaked here.
 return 0;
}
Собираю gcc
источник

TS

Till Schneider in pro.cxx
Kitnerboy Redoubt
А нормально, что он не детектит никак подобное?:
int main() {
 p = malloc(7);
 p = 0; // The memory is leaked here.
 return 0;
}
Собираю gcc
детектит =)
источник

SK

Stas Koynov in pro.cxx
у меня все детектит:
valgrind --leak-check=full --time-stamp=yes --track-origins=yes --vgdb=no  ./a.out
==00:00:00:00.000 23863== Memcheck, a memory error detector
==00:00:00:00.000 23863== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==00:00:00:00.000 23863== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==00:00:00:00.000 23863== Command: ./a.out
==00:00:00:00.000 23863==
==00:00:00:00.457 23863==
==00:00:00:00.457 23863== HEAP SUMMARY:
==00:00:00:00.457 23863==     in use at exit: 7 bytes in 1 blocks
==00:00:00:00.457 23863==   total heap usage: 1 allocs, 0 frees, 7 bytes allocated
==00:00:00:00.457 23863==
==00:00:00:00.457 23863== 7 bytes in 1 blocks are definitely lost in loss record 1 of 1
==00:00:00:00.457 23863==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==00:00:00:00.457 23863==    by 0x10915E: main (mtest.cpp:6)
источник

SK

Stas Koynov in pro.cxx
на вашем же примере:
int main() {
 void *p = malloc(7);
 p = 0; // The memory is leaked here.
 return 0;
}
источник

K

Kitnerboy Redoubt in pro.cxx
Я сейчас про asan
источник

K

Kitnerboy Redoubt in pro.cxx
Про valgrind мы выяснили, что можно пока отложить и попробовать другие инструменты.
источник

SK

Stas Koynov in pro.cxx
ну тогда пардоньте
источник