public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: George Anzinger <george@mvista.com>
To: Andi Kleen <ak@suse.de>
Cc: jim.houston@ccur.com, linux-kernel@vger.kernel.org
Subject: Re: Is there a kgdb for Opteron for linux-2.6?
Date: Wed, 29 Oct 2003 14:50:06 -0800	[thread overview]
Message-ID: <3FA0441E.9000205@mvista.com> (raw)
In-Reply-To: <20031029222454.7ec07a9e.ak@suse.de>

Andi Kleen wrote:
> On Wed, 29 Oct 2003 13:14:55 -0800
> George Anzinger <george@mvista.com> wrote:
> 
> 
>>Andi Kleen wrote:
>>
>>>On Tue, 28 Oct 2003 14:47:34 -0800
>>>George Anzinger <george@mvista.com> wrote:
>>>
>>>
>>>
>>>
>>>>I see that Andrew has not picked up my latest kgdb.  In the latest version I 
>>>>have the dwarf2 stuff working in entry.S.  Just ask, off list.
>>>
>>>
>>>Do you use the .cfi* mnemonics in newer binutils? Without that it would get ugly.
>>
>>I use asm mnemonics .uleb*, .sleb*, .byte and .long.  For operands I use the 
>>defines in dwarf2.h (after fixing them to work with asm).  These are, for the 
>>most part DW_CFA_* and other DW_* things.  I put this together to build macros 
>>(CCP) so that I can code things like:
> 
> 
> The latest binutils has new .cfi_* mnemonics in gas that make writing such a table
> much cleaner and easier. My plan was to use that. It would require new binutils,
> but make future mainteance much easier. When people don't have the new binutils
> it can be defined away.
> 
> See http://www.logix.cz/~mic/devel/gas-cfi/

Looks like good stuff if you want to do a blow by blow.  I decided against this 
in the register save and restore code as it is hardly ever needed.  An asm 
function is another matter and this looks good for that.

An observation:  Once you have the register save info in a CFI call frame, you 
can refer to it from anyplace you do the same save order.  For example, in my 
code, the trap save and the system call save as well as the interrupt saves are 
all covered by the one cfi entry.  This does not work if you want to do a blow 
by blow on the save and restore of the registers.  Also, I don't see the entries 
to do expression evaluation (yet).

> 
> 
>>Which allows "bt" through entry.S code.  I did not try to allow you to get the 
>>correct answer if you stop in the middle of the register save or restore code.
> 
> 
> On x86-64 it is unfortunately more complicated because it has a separate interrupt
> or exception stack. The backtracker has to read the old stack pointer from the 
> frame. This can be expressed in dwarf2, but is a bit tricky.

Yes, the expression stuff...

-- 
George Anzinger   george@mvista.com
High-res-timers:  http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml


      reply	other threads:[~2003-10-29 22:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-20 19:42 Is there a kgdb for Opteron for linux-2.6? Jim Houston
2003-10-24 13:51 ` Andi Kleen
2003-10-28 22:47   ` George Anzinger
2003-10-28 23:25     ` Andi Kleen
2003-10-29 21:14       ` George Anzinger
2003-10-29 21:24         ` Andi Kleen
2003-10-29 22:50           ` George Anzinger [this message]

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=3FA0441E.9000205@mvista.com \
    --to=george@mvista.com \
    --cc=ak@suse.de \
    --cc=jim.houston@ccur.com \
    --cc=linux-kernel@vger.kernel.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