Size: a a a

2020 June 03

K

Kitnerboy Redoubt in pro.cxx
asan вроде как должен такое детектить, но почему-то молчит. как на arm, так и на ПК.
источник

K

Kitnerboy Redoubt in pro.cxx
gcc -std=c99 -fsanitize=address main.c

Я где-то неправ?
источник

SK

Stas Koynov in pro.cxx
Kitnerboy Redoubt
asan вроде как должен такое детектить, но почему-то молчит. как на arm, так и на ПК.
-g &
источник

K

Kitnerboy Redoubt in pro.cxx
Аналогично.
источник

SK

Stas Koynov in pro.cxx
тогда тебе ПК нужно отнести к какой нибудь бабке, чтоб сглаз сняла.
источник

K

Kitnerboy Redoubt in pro.cxx
Окей, какие ещё инструменты стоит попробовать для выявления memory leakage?
источник

Е

Егор in pro.cxx
Kitnerboy Redoubt
asan вроде как должен такое детектить, но почему-то молчит. как на arm, так и на ПК.
он ведь молчит если нету утечек
а, пролистал выше
источник

IS

Iskander Saitbatalov in pro.cxx
Kitnerboy Redoubt
Окей, какие ещё инструменты стоит попробовать для выявления memory leakage?
Стой. У тебя valgrind показал как-то, что не получилось по нему отдетектить. Ты решил взять asan, не получилось с ним. В общем машинное обучение говорит, что после выбора следующего анализатора, ты тоже начнешь искать другой.
источник

TS

Till Schneider in pro.cxx
Kitnerboy Redoubt
gcc -std=c99 -fsanitize=address main.c

Я где-то неправ?
g++ main.cpp -fno-omit-frame-pointer -fsanitize=undefined -fsanitize=address
[localhost ~]$ ./a.out

=================================================================
==18536==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 7 byte(s) in 1 object(s) allocated from:
   #0 0x7f3f5c898667 in __interceptor_malloc (/lib64/libasan.so.6+0xb0667)
   #1 0x401157 in main (/home/user/a.out+0x401157)
   #2 0x7f3f5b977041 in __libc_start_main (/lib64/libc.so.6+0x27041)

SUMMARY: AddressSanitizer: 7 byte(s) leaked in 1 allocation(s).
источник

IS

Iskander Saitbatalov in pro.cxx
Разберись, что ты сделал не так, что у тебя asan молчит
источник

SK

Stas Koynov in pro.cxx
Till Schneider
g++ main.cpp -fno-omit-frame-pointer -fsanitize=undefined -fsanitize=address
[localhost ~]$ ./a.out

=================================================================
==18536==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 7 byte(s) in 1 object(s) allocated from:
   #0 0x7f3f5c898667 in __interceptor_malloc (/lib64/libasan.so.6+0xb0667)
   #1 0x401157 in main (/home/user/a.out+0x401157)
   #2 0x7f3f5b977041 in __libc_start_main (/lib64/libc.so.6+0x27041)

SUMMARY: AddressSanitizer: 7 byte(s) leaked in 1 allocation(s).
аналогично, только у меня еще и номер строки дал, если -g добавить. Топикстартер, у тебя какой gcc?
источник

IS

Iskander Saitbatalov in pro.cxx
Топикстартер
источник

IS

Iskander Saitbatalov in pro.cxx
@h4cktill Отвечай
источник

TS

Till Schneider in pro.cxx
причем тут я, алло?!
источник

IS

Iskander Saitbatalov in pro.cxx
:)
источник

CD

Constantine Drozdov in pro.cxx
Till Schneider
причем тут я, алло?!
пати знатоков назначило тебя друзем
источник

IS

Iskander Saitbatalov in pro.cxx
Блин, автор пропал, а мне интересно, в чем у него мем.
источник

m

magras in pro.cxx
Iskander Saitbatalov
В общем это самое.
Это double delete и потенциальный use after free, а не утечка. =)
источник

IS

Iskander Saitbatalov in pro.cxx
magras
Это double delete и потенциальный use after free, а не утечка. =)
Да ,ты прав. Ну у меня цель была показать, что проблему с памятью можно получить на любых смарт поинтерах. Если хочется лик, то можно вообще одним поинтером обойтись)
источник

m

magras in pro.cxx
Iskander Saitbatalov
Да ,ты прав. Ну у меня цель была показать, что проблему с памятью можно получить на любых смарт поинтерах. Если хочется лик, то можно вообще одним поинтером обойтись)
Ага. Утечку лучше через release() демонстрировать. Ну или просто на shared_ptr, что гораздо более жизненно.
источник