LINUX.ORG.RU

nm + ldd


0

0

Как одновременно посмотреть из каких .so и какие именно функции импортирует данная либа или бинарник как это делает борлондовский tdump?
типа
test.so
ddd
xxxx
test2.so
qqq
wwww

anonymous

#! /bin/sh

if [ $# -ne 1 ]; then
    echo "Usage: $0 <filename>"
    exit
fi

for l in $(ldd $1 | awk '{print $3}'); do
    echo "$l :"
    for f in $(nm -u $1 | awk '{print $1}'); do
	if [ -n "$(nm --defined-only $l | grep $f)" ]; then
	    echo -e "\t$f"
	fi
    done
done

ananas ★★★★★
()
Ответ на: комментарий от anonymous

попробуйте такой вариант

#! /bin/sh

if [ $# -ne 1 ]; then
    echo "Usage: $0 <filename>"
    exit
fi

for l in $(ldd $1 | awk '{print $3}'); do
    echo "$l :"
    for f in $(nm -u $1 | awk '{print $1}' | sed s/\@\@.*//g); do
        if [ -n "$(nm --defined-only $l | grep $f)" ]; then
            echo -e "\t$f"
        fi
    done
done

ananas ★★★★★
()
Ответ на: комментарий от ananas

Вот так работает но офегенно медленно
#! /bin/sh

if [ $# -ne 1 ]; then
echo "Usage: $0 <filename>"
exit
fi

for l in $(ldd $1 | awk '{print $3}'); do
echo "$l :"
for f in $(nm $l | awk '{print $3}'); do
if [ -n "$(nm $1 | awk '{print $3}' | grep $f)" ]; then
echo -e "\t$f"
fi
done
done

anonymous
()
Ответ на: комментарий от anonymous

посмотрите man nm на предмет ключиков разных. вы выводите все символы, их слишком много, поэтому вывод долго парсится

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.