NetBSD Problem Report #14618

Received: (qmail 20110 invoked from network); 17 Nov 2001 19:05:23 -0000
Message-Id: <>
Date: Sat, 17 Nov 2001 19:05:22 +0000 (GMT)
From: Ben Harris <>
Sender: Ben Harris <>
To: <>
Subject: DDB breakpoints on arm26 behave badly
X-GNATS-Notify: jhawk

>Number:         14618
>Category:       port-acorn26
>Synopsis:       DDB breakpoints on arm26 behave badly
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-acorn26-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Nov 17 19:06:01 +0000 2001
>Closed-Date:    Wed Jan 24 20:12:32 +0000 2018
>Last-Modified:  Wed Jan 24 20:12:32 +0000 2018
>Originator:     Ben Harris
>Release:        2001-11-17

When asked to set a breakpoint on a function, DDB puts an undefined
instruction in place of the first instruction of the function.  This means
that when the function is called, R14_svc gets corrupted, and Bad Things

db> b ubc_fault
db> c
[ catch breakpoint ]
db> c
[ note panic ]

Workaround is to manually place the breakpoint after the function
prologue, so:

db> b ubc_fault+0t12
db> c
[ catch breakpoint ]
db> c
[ note absence of panic ]

Better would be if DDB could do this automatically, but it currently lacks
suitable hooks.


From: Ben Harris <>
Subject: port-acorn26/14618: CVS commit: src/sys (fwd)
Date: Tue, 29 Apr 2003 19:09:57 +0100

 This commit looks useful:

 -------- forwarded message --------
 Module Name:	src
 Committed By:	scw
 Date:		Tue Apr 29 17:06:07 UTC 2003

 Modified Files:
 	src/sys/arch/alpha/include: db_machdep.h
 	src/sys/arch/amd64/include: db_machdep.h
 	src/sys/arch/arm/include: db_machdep.h
 	src/sys/arch/hppa/include: db_machdep.h
 	src/sys/arch/i386/include: db_machdep.h
 	src/sys/arch/m68k/include: db_machdep.h
 	src/sys/arch/mips/include: db_machdep.h
 	src/sys/arch/pc532/include: db_machdep.h
 	src/sys/arch/powerpc/include: db_machdep.h
 	src/sys/arch/sh3/include: db_machdep.h
 	src/sys/arch/sh5/include: db_machdep.h
 	src/sys/arch/sparc/include: db_machdep.h
 	src/sys/arch/sparc64/include: db_machdep.h
 	src/sys/arch/vax/include: db_machdep.h
 	src/sys/ddb: db_break.c

 Log Message:
 Add a BKPT_ADDR() macro which gives MD code a chance to munge a
 breakpoint address before it's used. Currently a no-op on all but sh5.

 This is useful on sh5, for example, to mask off the instruction
 type encoding in the bottom two address bits, and makes it possible
 to do "db> break $rXX" instead of manually munging the address.

 To generate a diff of this commit:
 cvs rdiff -r1.13 -r1.14 src/sys/arch/alpha/include/db_machdep.h
 cvs rdiff -r1.1 -r1.2 src/sys/arch/amd64/include/db_machdep.h
 cvs rdiff -r1.6 -r1.7 src/sys/arch/arm/include/db_machdep.h
 cvs rdiff -r1.1 -r1.2 src/sys/arch/hppa/include/db_machdep.h
 cvs rdiff -r1.20 -r1.21 src/sys/arch/i386/include/db_machdep.h
 cvs rdiff -r1.23 -r1.24 src/sys/arch/m68k/include/db_machdep.h
 cvs rdiff -r1.14 -r1.15 src/sys/arch/mips/include/db_machdep.h
 cvs rdiff -r1.13 -r1.14 src/sys/arch/pc532/include/db_machdep.h
 cvs rdiff -r1.16 -r1.17 src/sys/arch/powerpc/include/db_machdep.h
 cvs rdiff -r1.8 -r1.9 src/sys/arch/sh3/include/db_machdep.h
 cvs rdiff -r1.7 -r1.8 src/sys/arch/sh5/include/db_machdep.h
 cvs rdiff -r1.19 -r1.20 src/sys/arch/sparc/include/db_machdep.h
 cvs rdiff -r1.13 -r1.14 src/sys/arch/sparc64/include/db_machdep.h
 cvs rdiff -r1.11 -r1.12 src/sys/arch/vax/include/db_machdep.h
 cvs rdiff -r1.17 -r1.18 src/sys/ddb/db_break.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 ------- end of forwarded message -------

State-Changed-From-To: open->closed
State-Changed-When: Wed, 24 Jan 2018 20:12:32 +0000
the acorn26 port has been deleted.


NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD:,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.