public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Cc: gdb@sourceware.org
Subject: Re: GDB 7.4 adds shlib_events BPs, casuing problem in debugging vmlinux
Date: Wed, 30 May 2012 14:26:00 -0000	[thread overview]
Message-ID: <OF69216827.F4133E69-ONC1257A0E.004E9BAC-C1257A0E.004F3D27@transmode.se> (raw)
In-Reply-To: <OF9A4BFC71.726F89BA-ONC1257A0E.004B4830-C1257A0E.004BCCB4@LocalDomain>

Joakim Tjernlund/Transmode wrote on 2012/05/30 15:47:56:
>
> Using above gdb I get this when trying to debug a kernel with a BDI2000 emulator:
> #> powerpc-softfloat_4.5.3-linux-gnu-gdb vmlinux
> GNU gdb (Gentoo 7.4 p1) 7.4
> Copyright (C) 2012 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "--host=i686-pc-linux-gnu --target=powerpc-softfloat_4.5.3-linux-gnu".
> For bug reporting instructions, please see:
> <http://bugs.gentoo.org/>...
> Reading symbols from /usr/local/src/kenth_os2kernel.git/vmlinux...done.
> (gdb) tar remote bdi:2001
> Remote debugging using bdi:2001
> 0xeff80050 in ?? ()
> (gdb) mon reset
> (gdb) cont
> Continuing.
> Warning:
> Cannot insert breakpoint -1.
> Error accessing memory address 0xc0000000: Unknown error 4294967295.
>
> This ia because gdb always inserts a special BP:
>
> (gdb) maintenance info breakpoints
> Num     Type           Disp Enb Address    What
> -1      shlib events   keep y   0xc0000000 <_stext> inf 1
>
> I cannot get rid of this shared lib BP.
> Also linux does not use shard libs so why is it inserted in the fist place?
> Is there some tweak I can use to disable this BP(patch even)?

Found this in solib-svr4.c which I think is the problem:
static const char * const bkpt_names[] =
{
  "_start",
  "__start",
  "main",
  NULL
};
...
...
 if (!current_inferior ()->attach_flag)
    {
      for (bkpt_namep = bkpt_names; *bkpt_namep != NULL; bkpt_namep++)
	{
	  msymbol = lookup_minimal_symbol (*bkpt_namep, NULL, symfile_objfile);
	  if ((msymbol != NULL) && (SYMBOL_VALUE_ADDRESS (msymbol) != 0))
	    {
	      sym_addr = SYMBOL_VALUE_ADDRESS (msymbol);
	      sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch,
							     sym_addr,
							     &current_target);
	      create_solib_event_breakpoint (target_gdbarch, sym_addr);
	      return 1;
	    }
	}
    }

This will insert the above BP just because the symbol  _start is present. Seems like
there are missing safe guards to avoid the unwanted BP

 Jocke

       reply	other threads:[~2012-05-30 14:26 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <OF9A4BFC71.726F89BA-ONC1257A0E.004B4830-C1257A0E.004BCCB4@LocalDomain>
2012-05-30 14:26 ` Joakim Tjernlund [this message]
2012-05-30 21:36   ` Jan Kratochvil
2012-05-30 22:36     ` Joakim Tjernlund
2012-05-31  0:31     ` Joakim Tjernlund
2012-06-01 14:48       ` Jan Kratochvil
     [not found]     ` <OF4E766EE5.67CABBE6-ONC1257A0E.007AF1CF-C1257A0E.007C2C7F@LocalDomain>
2012-05-31 13:26       ` Joakim Tjernlund
2012-05-30 13:49 Joakim Tjernlund

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=OF69216827.F4133E69-ONC1257A0E.004E9BAC-C1257A0E.004F3D27@transmode.se \
    --to=joakim.tjernlund@transmode.se \
    --cc=gdb@sourceware.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).