Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: iam ahal <hal9000ed2k@gmail.com>
Cc: gdb-patches@sourceware.org, eliz@gnu.org, pmuldoon@redhat.com,
	       tromey@redhat.com, brobecker@adacore.com,
	pedro@codesourcery.com,        drow@false.org
Subject: Re: [patch] GDB 7.2: new feature for "backtrace" that cuts path to file (remain filename)
Date: Fri, 29 Jul 2011 13:35:00 -0000	[thread overview]
Message-ID: <20110729123603.GA7971@host1.jankratochvil.net> (raw)
In-Reply-To: <CAA18ub+ox5kmHu=1qvMkwNfzbCxMdy3M4Z8eKuheaiqyjxJvEg@mail.gmail.com>

On Sun, 24 Jul 2011 22:25:44 +0200, iam ahal wrote:
> +char *
> +get_display_filename_from_sal (struct symtab_and_line *sal)
> +{
> +  const char *filename = sal->symtab->filename;
> +  const char *dirname = sal->symtab->dirname;
> +
> +  if (backtrace_skip_compile && filename && dirname
> +      && strstr(filename, dirname))
> +    {
> +      /* +1 means skip directory separator */
> +      return filename + strlen(dirname) + 1;
> +    }
> +
> +  return filename;
> +}

I am against just omitting compilation directory, if something should be
omitted I am more for really printing just the basename.

Compilation directory can help only during some forms of compilations, various
packages use very complicated compilation setups and in some cases this patch
would have no effect:

$ echo 'int main(void){return 0;}' >17.c;x=$PWD;(cd /tmp;echo "#include <$x/17.c>" >17b.c;gcc -g -o $x/17 17b.c -Wall)
->
(gdb) set backtrace skip-compile-dir on
(gdb) bt
#0  main () at /home/jkratoch/redhat/gdb-clean/gdb/17.c:1
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
               Still displaying the very long pathname.
(gdb) 
readelf -wil
    <11>   DW_AT_name        : (indirect string, offset: 0x0): 17b.c    
    <15>   DW_AT_comp_dir    : (indirect string, offset: 0x6): /tmp     
 The Directory Table:
  /home/jkratoch/redhat/gdb-clean/gdb
 The File Name Table:
  Entry Dir     Time    Size    Name
  1     1       0       0       17.c


But afterwards the backtraces get even more ambigous.  This further discussions
may be out of the scope of this patch:

Already now with FSF GDB when debugging OpenOffice.org the debug line:
#3  0x00000034c72428ad in g_main_context_iteration (context=0x1149980, may_block=1) at gmain.c:2843

is not clear for newcomers that the functions comes from glib2 (and for example
not from gtk2 or OpenOffice.org itself) (I got even informal bugreport for it).

BTW it is a bit "easier" to debug it by `rm -rf /usr/lib/debug':
#2  0x00000034c72428ad in g_main_context_iteration () from /lib64/libglib-2.0.so.0

In fact the library path can be also pretty long without debug info:
#4  0x000000306231ffd1 in Application::Yield(bool) () from /usr/lib64/openoffice.org3/program/../basis-link/program/libvcllx.so

With the mail thread on mind:
	[RFC] canonical linespec and multiple breakpoints ...

I have some idea in display with debug info to use:
#3  0x00000034c72428ad in libglib-2.0.so.0:g_main_context_iteration (context=0x1149980, may_block=1) at gmain.c:2843
and without debug info:
#3  0x00000034c72428ad in libglib-2.0.so.0:g_main_context_iteration (context=0x1149980, may_block=1)
and also without debug info:
#4  0x000000306231ffd1 in libvcllx.so:Application::Yield(bool) ()

So that one can copy-paste it for less-ambiguous (currently not yet implemented):
(gdb) break libglib-2.0.so.0:g_main_context_iteration
(gdb) list libglib-2.0.so.0:g_main_context_iteration


A realwold OpenOffice.org dump showing the problem (the glibc functions also
may not be clear they come from glibc):

#0  0x00000034c76d7283 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00000034c7242374 in g_main_context_poll (context=0x1149980, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3093
#2  g_main_context_iterate (context=0x1149980, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2775
#3  0x00000034c72428ad in g_main_context_iteration (context=0x1149980, may_block=1) at gmain.c:2843
#4  0x0000003a6341a3be in GtkXLib::Yield (this=0x7f947aa2d008, bWait=true, bHandleAllCurrentEvents=<value optimized out>) at /usr/src/debug/OOO330_m20/vcl/unx/gtk/app/gtkdata.cxx:860
#5  0x000000306231ffd1 in ImplYield (i_bAllEvents=false) at /usr/src/debug/OOO330_m20/vcl/source/app/svapp.cxx:471
#6  Application::Yield (i_bAllEvents=false) at /usr/src/debug/OOO330_m20/vcl/source/app/svapp.cxx:505
#7  0x0000003062320087 in Application::Execute () at /usr/src/debug/OOO330_m20/vcl/source/app/svapp.cxx:448
#8  0x0000003e32c30465 in desktop::Desktop::Main (this=0x7ffff56f07b0) at /usr/src/debug/OOO330_m20/desktop/source/app/app.cxx:1877
#9  0x0000003062326731 in ImplSVMain () at /usr/src/debug/OOO330_m20/vcl/source/app/svmain.cxx:183
#10 0x00000030623267c5 in SVMain () at /usr/src/debug/OOO330_m20/vcl/source/app/svmain.cxx:224
#11 0x0000003e32c5195c in soffice_main () at /usr/src/debug/OOO330_m20/desktop/source/app/sofficemain.cxx:49
#12 0x00000000004010bb in sal_main (argc=<value optimized out>, argv=<value optimized out>) at main.c:35
#13 main (argc=<value optimized out>, argv=<value optimized out>) at main.c:34


Thanks for addressing it, I am preparing for this expected longterm arguing
about the backtrace output change for some years.  Sorry for so late followup.

FYI your patch does not apply to FSF GDB HEAD but the person doing final comit
can do some simple adjustments of it.


Thanks,
Jan


  parent reply	other threads:[~2011-07-29 12:36 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-26 20:00 iam ahal
2011-06-26 20:49 ` Phil Muldoon
2011-06-27 16:00   ` Joel Brobecker
2011-06-27 16:18     ` Phil Muldoon
2011-06-28 20:08     ` Tom Tromey
2011-06-28 22:36       ` Phil Muldoon
2011-07-03 18:12         ` iam ahal
2011-07-03 21:13           ` Eli Zaretskii
2011-07-04 11:26             ` iam ahal
2011-07-04 12:05               ` Eli Zaretskii
2011-07-04 21:47                 ` Joel Brobecker
2011-07-05  4:35                   ` Eli Zaretskii
2011-07-19 14:43                     ` Pedro Alves
2011-07-05  8:38                   ` iam ahal
2011-07-19 14:19                   ` Pedro Alves
2011-07-17 19:24                 ` iam ahal
2011-07-19 13:28                   ` iam ahal
2011-07-19 17:04                     ` Eli Zaretskii
2011-07-24 21:12                       ` iam ahal
2011-07-26 14:17                         ` iam ahal
2011-07-28 15:34                         ` Tom Tromey
2011-07-28 15:57                           ` Tom Tromey
2011-07-28 16:36                             ` Joel Brobecker
2011-07-28 17:39                               ` Tom Tromey
2011-07-28 17:51                           ` Tom Tromey
2011-07-29 12:01                             ` Joel Brobecker
2011-07-29 12:36                             ` Eli Zaretskii
2011-08-02 19:41                           ` iam ahal
2011-08-03 17:45                             ` Tom Tromey
2011-10-30 19:52                               ` iam ahal
2011-11-02 19:06                                 ` Tom Tromey
2011-11-02 22:53                                 ` Doug Evans
2011-12-04 15:52                                   ` iam ahal
2011-12-04 16:55                                     ` Eli Zaretskii
2011-12-04 18:41                                       ` iam ahal
2011-12-04 19:01                                         ` Pedro Alves
2011-12-04 19:56                                           ` Eli Zaretskii
2011-12-04 21:00                                             ` Pedro Alves
2011-12-05  3:54                                               ` Eli Zaretskii
2011-12-05  5:17                                                 ` Eli Zaretskii
2011-12-06 13:03                                                   ` Pedro Alves
2011-12-06 14:04                                                     ` Eli Zaretskii
2011-12-06 18:00                                                       ` Doug Evans
2011-12-06 20:45                                                       ` Tom Tromey
2011-12-07  8:00                                                         ` Eli Zaretskii
2012-03-10 20:15                                                           ` iam ahal
2012-03-11  1:22                                                             ` asmwarrior
2012-03-12 13:10                                                               ` iam ahal
2012-03-14 16:11                                                             ` Tom Tromey
2012-03-14 16:27                                                             ` Jan Kratochvil
2012-03-14 17:40                                                             ` Eli Zaretskii
2012-03-15 22:46                                                             ` Jan Kratochvil
2012-03-18 18:30                                                               ` iam ahal
2012-03-18 18:35                                                                 ` Jan Kratochvil
2012-04-06 14:22                                                                   ` Jan Kratochvil
2012-03-18 20:46                                                                 ` Eli Zaretskii
2012-03-25 19:27                                                                   ` iam ahal
2012-03-25 19:31                                                                     ` Jan Kratochvil
2012-03-25 21:23                                                                     ` Eli Zaretskii
2011-12-06 12:50                                                 ` Pedro Alves
2011-12-06 20:40                                     ` Tom Tromey
2011-12-06 23:02                                     ` Jan Kratochvil
2011-07-29 13:35                         ` Jan Kratochvil [this message]
2011-08-01 18:04                           ` Tom Tromey
2011-06-29 10:09       ` Andrew Burgess
2011-06-29 16:06       ` Joel Brobecker
2011-07-03 18:15     ` Daniel Jacobowitz
2011-06-28 20:08   ` Tom Tromey
2012-04-09 15:39 ` Jan Kratochvil

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=20110729123603.GA7971@host1.jankratochvil.net \
    --to=jan.kratochvil@redhat.com \
    --cc=brobecker@adacore.com \
    --cc=drow@false.org \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=hal9000ed2k@gmail.com \
    --cc=pedro@codesourcery.com \
    --cc=pmuldoon@redhat.com \
    --cc=tromey@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