From owner-freebsd-stable@FreeBSD.ORG Sat Jul 30 20:15:14 2011 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 196321065677; Sat, 30 Jul 2011 20:15:14 +0000 (UTC) (envelope-from maestro82@gmail.com) Received: from mail-qy0-f175.google.com (mail-qy0-f175.google.com [209.85.216.175]) by mx1.freebsd.org (Postfix) with ESMTP id B4E7E8FC12; Sat, 30 Jul 2011 20:15:13 +0000 (UTC) Received: by qyk30 with SMTP id 30so448109qyk.13 for ; Sat, 30 Jul 2011 13:15:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=JFvKZEjqlfRzYFtUeGqmfb0T3op/2ff7267QFVHgCJk=; b=Awjv0y96AeMUdtRzt43Z2V5c2s1Tq0ibfA8i5sOFKNanEmzRAH7whctCs6Q+eY1aFI dA2TWIZmEu0veX9drCWGG492VgGmeJ833CfxcGY4zmAzE/lb1LZ1Gjhh9q1vmgiKDVQv 1l4O+uMqWsI+am/WEmhmFy7w9eMhQTWHYPKa8= MIME-Version: 1.0 Received: by 10.229.16.200 with SMTP id p8mr2076558qca.22.1312056913001; Sat, 30 Jul 2011 13:15:13 -0700 (PDT) Received: by 10.229.69.218 with HTTP; Sat, 30 Jul 2011 13:15:12 -0700 (PDT) In-Reply-To: <20110730192646.GC17489@deviant.kiev.zoral.com.ua> References: <4E2E9F60.1060808@FreeBSD.org> <4E33B7CF.90200@FreeBSD.org> <4E344D15.1040508@FreeBSD.org> <20110730192646.GC17489@deviant.kiev.zoral.com.ua> Date: Sat, 30 Jul 2011 13:15:12 -0700 Message-ID: From: maestro something To: Kostik Belousov Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-stable@freebsd.org, Andriy Gapon Subject: Re: dtrace ustack kernel panic X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jul 2011 20:15:14 -0000 Hi, This is i386, right ? > I think the cause is that assembler routine panic_trigger does not > establish the standard i386 frame. Basically, you need either this, > or dwarf annotations, for gdb to be able to walk over the frame. > > You need to add the standard prologue > pushl %ebp > movl %esp,%ebp > and standard epilogue > leave > to the function. No idea whether it will continue to operate correctly > after. > my panic_trigger looks like this now: /* int panic_trigger(int *tp) */ ENTRY(panic_trigger) pushl %ebp movl %esp,%ebp xorl %eax, %eax movl $0xdefacedd, %edx lock xchgl %edx, (%edi) cmpl $0, %edx je 0f movl $0, %eax leave ret 0: movl $1, %eax leave ret END(panic_trigger) same result, (actually too same as the address in the stack trace is still the same, is that possible?) cheers --m