NetBSD Problem Report #8156

Received: (qmail 8151 invoked from network); 6 Aug 1999 15:38:29 -0000
Message-Id: <199908061538.BAA29711@merlin.reed.wattle.id.au>
Date: Sat, 7 Aug 1999 01:38:08 +1000 (EST)
From: darrenr@pobox.com
Reply-To: darrenr@pobox.com
To: gnats-bugs@gnats.netbsd.org
Subject: gdb step/next doesn't work on arm32
X-Send-Pr-Version: 3.95

>Number:         8156
>Category:       port-arm
>Synopsis:       step/next in gdb do not work
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    skrll
>State:          feedback
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Aug 06 08:50:00 +0000 1999
>Closed-Date:    
>Last-Modified:  Sat Dec 31 22:14:27 +0000 2011
>Originator:     Darren Reed
>Release:        1.4
>Organization:

>Environment:
System: NetBSD merlin.reed.wattle.id.au 1.4 NetBSD 1.4 (MERLIN) #7: Mon Jul 5 17:11:16 EST 1999 darrenr@merlin.reed.wattle.id.au:/usr/src/sys/arch/arm32/compile/MERLIN arm32


>Description:
	use of step/next is broken with gdb on the arm32 port.
>How-To-Repeat:
	use gdb to debug a program, using step/next.  at random it will
appear to not step/next but actually continue executing the rest of the
program.
>Fix:

>Release-Note:
>Audit-Trail:

From: Richard Earnshaw <rearnsha@arm.com>
To: darrenr@pobox.com
Cc: gnats-bugs@gnats.netbsd.org
Subject: Re: port-arm32/8156: gdb step/next doesn't work on arm32 
Date: Fri, 06 Aug 1999 18:18:50 +0100

 This is essentially a duplicate of bin/7565 (which contains the relevant 
 patch, but has not yet been attended to).  There are still problems after 
 this, but at least single stepping seems to work.

 Tod, any chance you could fix this?

 Richard.


From: Darren Reed <darrenr@reed.wattle.id.au>
To: richard.earnshaw@arm.com
Cc: darrenr@pobox.com, gnats-bugs@gnats.netbsd.org, richard.earnshaw@arm.com,
        tv@pobox.com
Subject: Re: port-arm32/8156: gdb step/next doesn't work on arm32
Date: Sun, 29 Aug 1999 18:57:03 +1000 (EST)

 In some email I received from Richard Earnshaw, sie wrote:
 > This is essentially a duplicate of bin/7565 (which contains the relevant 
 > patch, but has not yet been attended to).  There are still problems after 
 > this, but at least single stepping seems to work.
 > 
 > Tod, any chance you could fix this?

 has there been any progress on this ?  gdb-4.18 has the changes in
 bin/7565.  It would be real nice for NetBSD to get up to date here.
 This patch *should* have been in 1.4.1

From: Darren Reed <darrenr@reed.wattle.id.au>
(From PR8408)
I tested the patch in bin/7565 with the gdb source from 1.4 and it does
not fix the problem:


# /usr/src/gnu/usr.bin/gdb/gdb arm-unknown-netbsd1.4/nsyslogd 
...
This GDB was configured as "arm--netbsd"...
(gdb) break main
Breakpoint 1 at 0x1303c: file main.c, line 614.
(gdb) run -dvf trivial
Starting program: /home/darrenr/src/nsyslogd/arm-unknown-netbsd1.4/nsyslogd -dvf trivial


Breakpoint 1, main (argc=3, argv=0xefbfd6ec) at main.c:614
614             int killflag = 0, reloadflag = 0;
(gdb) step
621             tzset();
(gdb) 
622             if (!(progname = strrchr(argv[0], '/')))
(gdb) 
625                     progname++;
(gdb) 
627             bzero((char *)&act, sizeof(act));
(gdb) 
Reading configuration from trivial
error opening logfile /dev/klog: Device busy
bind failed: Address already in use
...


Or at least doing a "make includes" in usr/src/gnu and "make" in the
usr/src/gnu/usr.bin/gdb directory did not generate a `fixed' gdb.


Has anyone else tested the patch in bin/7565 and had it work for them ?


Darren

(From PR 8409)
I'm not sure this is directly related.  I've noticed several problems with 
trying to use gdb, and it seems there are in fact a whole host of 
unresolved issues.


1) Stepping over/into shared library stubs seems to be broken (and always 
has been).  Does your particular problem go away if you link -static (no 
shared libs)?


2) There still seem to be some vm problems related to debugging.  On more 
than one occasion I've had gdb report that it has failed to set a 
breakpoint or reports a memory location as being invalid at a perfectly 
legitimate address; it seems that if a page, once mapped in, gets mapped 
out again for some reason then accesses to it via the ptrace call can (but 
don't always) fail; repeating the command will often succeed (but this 
doesn't apply to setting breakpoints -- gdb remembers that there have been 
failures and just gives up).


3) Gdb is still not very good at understanding function prologues when 
code is compiled -O2; best fix for this is to compile no higher than -O 
when debugging, or to just accept that stack back-traces just won't work.


4) The gdb "call" command has been broken again -- I fixed this for the 
previous version of gdb, but then the conventions were all changed again 
and the netbsd port code just hasn't caught up.


5) gcc should be configured to pass -X to the linker to tell it to discard 
symbols starting with 'L' (these are internal code symbols and have 
nothing to do with user-land.  The official egcs/gcc sources do this; I 
don't know why it isn't done in the NetBSD in-tree copy.


I think 2) is probably another symptom of PR 7122 (Breakpoints lost under 
heavy swapping), but I can't be sure.


I've virtually given up on the in-tree version of gdb.  In fact I've 
down-loaded the cygnus development code and started a new port of that; it 
is already much more functional (though it still fails many tests), and 2) 
& 5) are still going to be problems.


Richard.

(From PR 8410)
darrenr@reed.wattle.id.au said:
> Or at least doing a "make includes" in usr/src/gnu and "make" in the
> usr/src/gnu/usr.bin/gdb directory did not generate a `fixed' gdb. 


Dependencies on target-specific header files are not a strong point of gnu 
make systems.  I would recommend that you do a "make clean" in 
usr/src/gnu/usr.bin/gdb and then to a fresh build/install.


Richard.

(From PR8411)
In some email I received from Richard Earnshaw, sie wrote:
[...]
> 1) Stepping over/into shared library stubs seems to be broken (and always 
> has been).  Does your particular problem go away if you link -static (no 
> shared libs)?


No.


Darren

State-Changed-From-To: open->feedback 
State-Changed-By: is 
State-Changed-When: Fri Sep 10 05:58:38 PDT 1999 
State-Changed-Why:  
Does the patch of PR 7565 make gdb work for you, or do you observe a 
different problem? 

-is 
State-Changed-From-To: feedback->open 
State-Changed-By: is 
State-Changed-When: Tue Sep 14 06:42:35 PDT 1999 
State-Changed-Why:  
The victim claims that the fix from #7156 does not help in his case. 
This must be a different problem. 
Responsible-Changed-From-To: port-arm32-maintainer->port-arm-maintainer 
Responsible-Changed-By: bjh21 
Responsible-Changed-When: Mon Aug 5 17:47:46 PDT 2002 
Responsible-Changed-Why:  
The arm32 port has disappeared. 
Responsible-Changed-From-To: port-arm-maintainer->skrll
Responsible-Changed-By: chris@narn.netbsd.org
Responsible-Changed-When: Sun, 20 Jan 2008 14:08:55 +0000
Responsible-Changed-Why:
Nick said he'd take a look at it.


State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Sat, 31 Dec 2011 22:14:27 +0000
State-Changed-Why:
Did gdb7 help this?


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.