36 lines
586 B
Bash
Executable File
36 lines
586 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# This script works only with memory-trace file generated in Linux.
|
|
|
|
file="memory-trace"
|
|
if [ ! -f $file ]; then
|
|
echo no memory trace file found
|
|
exit 1
|
|
fi
|
|
|
|
declare -A addrs
|
|
|
|
while read line; do
|
|
IFS=" " read -r type addr1 trash1 addr2 trash2 <<< $line
|
|
|
|
case "$type" in
|
|
"new")
|
|
addrs[$addr1]="allocated"
|
|
;;
|
|
"resize")
|
|
addrs[$addr1]="freed"
|
|
addrs[$addr2]="allocated"
|
|
;;
|
|
"delete")
|
|
addrs[$addr1]="freed"
|
|
;;
|
|
*) ;;
|
|
esac
|
|
done < $file
|
|
|
|
for addr in "${!addrs[@]}"; do
|
|
if [ "${addrs[$addr]}" == "allocated" ]; then
|
|
echo $addr
|
|
fi
|
|
done
|