Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Jim Blandy <jimb@redhat.com>
To: Alexander Larsson <alexl@redhat.com>
Cc: gdb@sources.redhat.com
Subject: Re: Final separate debug info patch
Date: Mon, 18 Nov 2002 21:20:00 -0000	[thread overview]
Message-ID: <vt2wunajgl9.fsf@zenia.red-bean.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0210090447290.29225-200000@devserv.devel.redhat.com>


It looks like the stripping process may break some executables.  If $D
is the top directory of a current GDB source tree, try this:

$ g++ --version
g++ (GCC) 3.3 20020820 (experimental)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ g++ -g $D/gdb/testsuite/gdb.c++/try_catch.cc -o try_catch
$ ./try_catch
$ /home/jimb/elfutils/bin/strip -f try_catch.separate-debug try_catch
$ ./try_catch
Segmentation fault
$ 

I found this by running the GDB test suite, configured to strip the
debug info of every executable it creates to a separate file.  If
you'd like to try it, here's how I did it:

First, I created a file $DEJAGNU/boards/unix-separate-debug.exp, which
contains the following:

    load_base_board_description "unix"

    set strip_to_file_program "/home/jimb/elfutils/bin/strip"

    proc ${current_target_name}_compile {source dest type options} {
        global strip_to_file_program

        # Run the standard compilation procedure.
        set result [default_target_compile $source $dest $type $options]

        # If it didn't succeed, return directly.
        if {[string compare $result ""] != 0} {
            return $result
        }

        puts "jimb: stripping to a separate file..."

        # Otherwise, strip the executable and copy its debug info to a
        # separate file, leaving only a pointer behind.
        if {[string compare $type executable] == 0} {
            exec $strip_to_file_program -f ${dest}.separate-debug ${dest}
        }
    }

This defines a new target, "unix-separate-debug", which is just like
"unix" except that it extracts the debug info of each executable the
test suite builds to a separate file.  Adjust `strip_to_file_program'
as needed, of course.

Then, I use the following target list in my $DEJAGNU file:

    set target_list {
        unix-sdi
        unix
    }

So the effect is to:
- run all the tests once with separate debug info, and then
- run all the tests again with the normal debug info arrangement.

This makes it easy to see if the patch has any effect on the tests.

There are some problems at the moment: DejaGNU has the name "unix"
hard-coded into it, and thinks that anything with another name is a
remote board.  Some tests won't run if the target is remote.  I think
I know how to persuade it that unix-separate-debug is still not a
remote target, but I'm just going to post this as is for the time
being.


  reply	other threads:[~2002-11-19  5:20 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-09  1:54 Alexander Larsson
2002-11-18 21:20 ` Jim Blandy [this message]
2002-11-18 21:32   ` Daniel Jacobowitz
2002-11-19  3:53     ` Jim Blandy
2002-11-18 23:47   ` Alexander Larsson
2002-11-19  3:38     ` Jim Blandy
2002-11-19  3:57       ` Alexander Larsson
2002-11-19 12:47         ` Alexander Larsson
2002-11-20 21:43           ` Jim Blandy
2002-11-20 23:35             ` Alexander Larsson
2002-11-19  5:00   ` Jim Blandy
2002-11-18 22:11 ` Jim Blandy
2002-11-18 23:51   ` Alexander Larsson
2002-11-19  0:02     ` Ulrich Drepper
2002-11-19  3:47       ` Jim Blandy
2002-11-19  3:53         ` Alexander Larsson
2002-11-19  4:38           ` Jim Blandy
2002-11-24 20:28 ` Jim Blandy
2002-11-25  5:37   ` Alexander Larsson
2002-11-25  9:44     ` Jim Blandy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=vt2wunajgl9.fsf@zenia.red-bean.com \
    --to=jimb@redhat.com \
    --cc=alexl@redhat.com \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox