/
niceSOFT
/
valgrind
Обзор
Документация
Войти
/
niceSOFT
/
valgrind
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
memcheck/tests/filter_xml
53 строки
3 KB
Paul Floyd
Darwin regtest: changes to filters and sed commands
30 окт 2025, 21:02
30 окт 2025, 21:02
6a490ee
Код
Авторство
О чём код?
#! /bin/sh dir=`dirname $0` ./filter_stderr "$@" | $dir/../../tests/filter_xml_frames | sed "s/<tid>[0-9]*<\/tid>/<tid>...<\/tid>/" | sed "s/<pid>[0-9]*<\/pid>/<pid>...<\/pid>/" | sed "s/<ppid>[0-9]*<\/ppid>/<ppid>...<\/ppid>/" | sed "s/<obj>.*<\/obj>/<obj>...<\/obj>/" | sed "s/<line>.*<\/line>/<line>...<\/line>/" | sed "s/<dir>.*<\/dir>/<dir>...<\/dir>/" | sed "s/<count>.*<\/count>/<count>...<\/count>/" | # Filter out @* version symbol function names sed "s/<fn>\(.*\)\@\*<\/fn>/<fn>\1<\/fn>/" | sed "s/of size [48]</of size N</" | sed "s/unsigned int, std::align_val_t/unsigned long, std::align_val_t/" | sed "s/operator new(unsigned int/operator new(unsigned long/" | sed "s/operator new\[\](unsigned int/operator new[](unsigned long/" | sed "s/operator delete(void\*, unsigned int/operator delete(void*, unsigned long/" | sed "s/operator delete\[\](void\*, unsigned int/operator delete[](void*, unsigned long/" | sed "s/4294967295/18446744073709551615/" | sed "s/malloc_zone_memalign/posix_memalign/" | perl -p -e "s/(m_replacemalloc\/)?vg_replace_malloc.c/vg_replace_malloc.c/" | perl -0 -p -e "s/<heap_summary>.*<\/heap_summary>/<heap_summary>...<\/heap_summary>/s" | perl -0 -p -e "s/<error_summary>.*<\/error_summary>/<error_summary>...<\/error_summary>/s" | perl -0 -p -e "s/<leak_summary>.*<\/leak_summary>/<leak_summary>...<\/leak_summary>/s" | perl -0 -p -e "s/<suppcounts>.*<\/suppcounts>/<suppcounts>...<\/suppcounts>/s" | perl -p -e "s/<time>.*<\/time>/<time>...<\/time>/s" | perl -0 -p -e "s/<vargv>.*<\/vargv>/<vargv>...<\/vargv>/s" | perl -0 -p -e "s/<suppressed>.*<\/suppressed>/<suppressed>...<\/suppressed>/s" | perl -0 -p -e "s/<suppressed_contexts>.*<\/suppressed_contexts>/<suppressed_from>...<\/suppressed_from>/s" | # Remove stack traces for Syscall param errors (see filter_stderr for more). # Chops everything within <stack>...</stack>. perl -p -0 -e 's/(<what>Syscall param[^\n]*\n)([^\n]*(stack|frame|ip|obj|fn|dir|file|line)[^\n]*\n)+/$1/gs' | # Collected wisdom re Perl magic incantation: # # From: Tom Hughes # # Two problems - one is that you need -p to force perl to loop over # the input lines and apply your expression to each one and then print # the results. # # The other is that as somebody else said you need to change the input # record separator so that it reads in the whole file as a single line # (which means we can do multi-line matching in a single regexp) which you # can do with the -0 switch. # # Hence -0 -p. sed "/<all_heap_blocks_freed>/{N;s/\n//;};/<all_heap_blocks_freed>/d"