diff options
Diffstat (limited to 'extras/devel-tools')
| -rwxr-xr-x | extras/devel-tools/print-backtrace.sh | 20 | 
1 files changed, 18 insertions, 2 deletions
diff --git a/extras/devel-tools/print-backtrace.sh b/extras/devel-tools/print-backtrace.sh index 873b6bc692d..72b93c1353f 100755 --- a/extras/devel-tools/print-backtrace.sh +++ b/extras/devel-tools/print-backtrace.sh @@ -20,6 +20,8 @@  # Usage with source install:  # print-packtrace.sh none bt-file.txt +function version_compare() { test $(echo $1|awk -F '.' '{print $1 $2 $3}') -gt $(echo $2|awk -F '.' '{print $1 $2 $3}'); } +  function Usage()  {          echo -e "Usage:\n\t$0 { none | <debuginfo-rpm> } <backtrace-file>" @@ -53,6 +55,7 @@ if ! file $debuginfo_rpm | grep RPM >/dev/null 2>&1 ; then          exit 1  fi +cpio_version=$(cpio --version|grep cpio|cut -f 2 -d ')'|sed -e 's/^[[:space:]]*//')  rpm_name=""  debuginfo_path=""  debuginfo_extension="" @@ -66,8 +69,21 @@ if [ $debuginfo_rpm != "none" ]; then                  exit 1          fi          mkdir -p $rpm_name -        rpm2cpio $debuginfo_rpm | cpio --quiet --extract --make-directories --preserve-modification-time --directory=$rpm_name - +        if version_compare $cpio_version "2.11"; then +                rpm2cpio $debuginfo_rpm | cpio --quiet --extract --make-directories --preserve-modification-time --directory=$rpm_name +                ret=$? +        else +                current_dir="$PWD" +                cd $rpm_name +                rpm2cpio $debuginfo_rpm | cpio --quiet --extract --make-directories --preserve-modification-time +                ret=$? +                cd $current_dir +        fi +        if [ $ret -eq 1 ]; then +                echo "failed to extract rpm $debuginfo_rpm to $PWD/$rpm_name directory" +                rm -rf $rpm_name +                exit 1 +        fi          debuginfo_path="$PWD/$rpm_name/usr/lib/debug"          debuginfo_extension=".debug"  else  | 
