aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2013-09-11 08:31:44 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2013-09-11 08:31:44 +0000
commitedf9f00c51bc274219a12a2b572abc9ad259af96 (patch)
tree5af7a118a503547d87fc7a27c5bcb49f86cf712d
parent1d236d23086bc8ce7d85ed03e9721631e4145538 (diff)
downloadgdb-edf9f00c51bc274219a12a2b572abc9ad259af96.zip
gdb-edf9f00c51bc274219a12a2b572abc9ad259af96.tar.gz
gdb-edf9f00c51bc274219a12a2b572abc9ad259af96.tar.bz2
minidebuginfo: Fix stripping/debuginfo
gdb/doc/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create mini_debuginfo. Strip binary before adding mini_debuginfo to it. gdb/testsuite/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.base/gnu-debugdata.exp (objcopy 1): Move it lower and use only debug part of the binary.
-rw-r--r--gdb/doc/ChangeLog5
-rw-r--r--gdb/doc/gdb.texinfo8
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/gnu-debugdata.exp14
4 files changed, 24 insertions, 8 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 442b601..1b3e45c 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,5 +1,10 @@
2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
+ * gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create
+ mini_debuginfo. Strip binary before adding mini_debuginfo to it.
+
+2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
+
Sync documentation with gdb.base/gnu-debugdata.exp.
* gdb.texinfo (MiniDebugInfo): Add comment and "D" in the example.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 00f8e77..b6ba239 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -17340,10 +17340,16 @@ nm @var{binary} --format=posix --defined-only \
# table.
comm -13 dynsyms funcsyms > keep_symbols
+# Separate full debug info into debug binary.
+objcopy --only-keep-debug @var{binary} debug
+
# Copy the full debuginfo, keeping only a minimal set of symbols and
# removing some unnecessary sections.
objcopy -S --remove-section .gdb_index --remove-section .comment \
- --keep-symbols=keep_symbols @var{binary} mini_debuginfo
+ --keep-symbols=keep_symbols debug mini_debuginfo
+
+# Drop the full debug info from the original binary.
+strip --strip-all -R .comment @var{binary}
# Inject the compressed data into the .gnu_debugdata section of the
# original binary.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 1bf8fb8..aa7397e 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
+ * gdb.base/gnu-debugdata.exp (objcopy 1): Move it lower and use only
+ debug part of the binary.
+
+2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
+
* gdb.base/gnu-debugdata.exp (strip): Add -R .comment.
(addlink): Add comment.
diff --git a/gdb/testsuite/gdb.base/gnu-debugdata.exp b/gdb/testsuite/gdb.base/gnu-debugdata.exp
index bbd3a76..e567ea8 100644
--- a/gdb/testsuite/gdb.base/gnu-debugdata.exp
+++ b/gdb/testsuite/gdb.base/gnu-debugdata.exp
@@ -89,13 +89,6 @@ if {[run_on_host "comm" "comm" "-13 ${binfile}.dynsyms ${binfile}.funcsyms" "" \
return -1
}
-# Copy the full debuginfo, keeping only a minimal set of symbols and
-# removing some unnecessary sections.
-remote_file host delete ${binfile}.mini_debuginfo
-if {[run_on_host "objcopy 1" [transform objcopy] "-S --remove-section .gdb_index --remove-section .comment --keep-symbols=${binfile}.keep_symbols ${binfile} ${binfile}.mini_debuginfo"]} {
- return -1
-}
-
# GDB specific - we do not have split executable in advance.
remote_file host delete ${binfile}.strip
if {[run_on_host "strip" [transform strip] \
@@ -110,6 +103,13 @@ if {[run_on_host "copydebug" [transform objcopy] \
return -1
}
+# Copy the full debuginfo, keeping only a minimal set of symbols and
+# removing some unnecessary sections.
+remote_file host delete ${binfile}.mini_debuginfo
+if {[run_on_host "objcopy 1" [transform objcopy] "-S --remove-section .gdb_index --remove-section .comment --keep-symbols=${binfile}.keep_symbols ${binfile}.debug ${binfile}.mini_debuginfo"]} {
+ return -1
+}
+
# Add the .gnu_debuglink section to the .gnu_debugdata file.
# .gnu_debuglink is normally not present in the .gnu_debugdata section but in
# some files there may be PT_NOTE with NT_GNU_BUILD_ID and GDB could look up