- # Make sure the coredump is finished using fuser
- for core in $core_files; do
- while fuser "$core"; do
- sleep 1
- done
+ if [ -f "$file_to_collect" ]; then
+ echo "$file_to_collect" >> "$file_list"
+
+ if [ -L "$file_to_collect" ]; then
+ collect_recursive "$(readlink "$file_to_collect")"
+ fi
+ fi
+}
+
+# For each core file...
+while read -r core_file; do
+ # Make sure the coredump is finished using fuser.
+ while fuser "$core_file"; do
+ sleep 1
+ done
+
+ # Collect everything in the core file that looks like a reference to a
+ # shared lib.
+ strings "$core_file" | grep '^/.*\.so.*' | while read -r str; do
+ collect_recursive "$str"