如何判断可执行文件是否携带了调试信息?
Q: 某些时候需要知道编译可执行文件时是否携带了调试信息(比如是否指定了-g编译
选项)。检查可执行文件中是否包含".stab" elf section,".stab" section用于
保存相关调试信息。
下面这个脚本演示如何判断可执行文件是否携带调试信息
if [ $# -le 0 ]
then
echo "Usage: $1 filename"
exit 1
fi
if [ ! -f $1 ]
then
echo "File $1 does not exist"
exit 1
fi
/usr/ccs/bin/dump -hv $1 | /bin/egrep -s '.stab$'
if [ $? -eq 0 ]
then
echo "File '$1' has been built for debug"
exit 0
else
echo "File '$1' has not been built for debug"
exit 1
fi