From owner-p4-projects@FreeBSD.ORG Thu Aug 25 20:58:35 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DFCB816A42D; Thu, 25 Aug 2005 20:58:34 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AA19616A420 for ; Thu, 25 Aug 2005 20:58:34 +0000 (GMT) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7560143D49 for ; Thu, 25 Aug 2005 20:58:34 +0000 (GMT) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PKwYbw086886 for ; Thu, 25 Aug 2005 20:58:34 GMT (envelope-from cognet@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PKwYru086883 for perforce@freebsd.org; Thu, 25 Aug 2005 20:58:34 GMT (envelope-from cognet@freebsd.org) Date: Thu, 25 Aug 2005 20:58:34 GMT Message-Id: <200508252058.j7PKwYru086883@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cognet@freebsd.org using -f From: Olivier Houchard To: Perforce Change Reviews Cc: Subject: PERFORCE change 82559 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 20:58:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=82559 Change 82559 by cognet@cognet on 2005/08/25 20:58:32 Don't complain we can't read the process kernel stack if the stack pointer is 0. It will happen when debugging a live kernel, because then dumppcb will be all zeroed. Affected files ... .. //depot/projects/arm/gnu-arm.diff#6 edit Differences ... ==== //depot/projects/arm/gnu-arm.diff#6 (text+ko) ==== @@ -999,8 +999,8 @@ RCS file: gnu/usr.bin/gdb/kgdb/trgt_arm.c diff -N gnu/usr.bin/gdb/kgdb/trgt_arm.c --- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ gnu/usr.bin/gdb/kgdb/trgt_arm.c 24 Aug 2005 11:14:23 -0000 -@@ -0,0 +1,81 @@ ++++ gnu/usr.bin/gdb/kgdb/trgt_arm.c 25 Aug 2005 20:54:50 -0000 +@@ -0,0 +1,83 @@ +/* + * Copyright (c) 2004 Marcel Moolenaar + * All rights reserved. @@ -1063,18 +1063,20 @@ + supply_register(i, (char *)&pcb.un_32.pcb32_r8 + + (i - (ARM_A1_REGNUM + 8 )) * 4); + } -+ for (i = 0; i < 4; i++) { -+ if (kvm_read(kvm, pcb.un_32.pcb32_sp + (i) * 4, -+ ®, 4) != 4) { -+ warnx("kvm_read: %s", kvm_geterr(kvm)); -+ break; ++ if (pcb.un_32.pcb32_sp != 0) { ++ for (i = 0; i < 4; i++) { ++ if (kvm_read(kvm, pcb.un_32.pcb32_sp + (i) * 4, ++ ®, 4) != 4) { ++ warnx("kvm_read: %s", kvm_geterr(kvm)); ++ break; ++ } ++ supply_register(ARM_A1_REGNUM + 4 + i, (char *)®); + } -+ supply_register(ARM_A1_REGNUM + 4 + i, (char *)®); ++ if (kvm_read(kvm, pcb.un_32.pcb32_sp + 4 * 4, ®, 4) != 4) ++ warnx("kvm_read :%s", kvm_geterr(kvm)); ++ else ++ supply_register(ARM_PC_REGNUM, (char *)®); + } -+ if (kvm_read(kvm, pcb.un_32.pcb32_sp + 4 * 4, ®, 4) != 4) -+ warnx("kvm_read :%s", kvm_geterr(kvm)); -+ else -+ supply_register(ARM_PC_REGNUM, (char *)®); +} + +void