public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Jonathan Larmour <jlarmour@redhat.com>
To: Mark Salter <msalter@redhat.com>
Cc: john@talisker.demon.co.uk, ecos-discuss@sourceware.cygnus.com
Subject: Re: [ECOS] gdb 'next' problem with i386 HAL
Date: Wed, 05 Sep 2001 08:55:00 -0000	[thread overview]
Message-ID: <3B964AE0.10557995@redhat.com> (raw)
In-Reply-To: <200109051544.f85FiKl19204@deneb.localdomain>

Mark Salter wrote:
> 
> >>>>> Jonathan Larmour writes:
> 
> > Mark Salter wrote:
> >>
> >> >>>>> John Gumb writes:
> >>
> >> > The problem only occurs when 'nexting' over a function call.
> > [snip]
> >> > The trouble is, the return address isn't there. I had a poke around and it actually is 16 bytes further down the stack. [snip]
> >>
> >> I think this is a problem in the HAL code. The HAL is passing
> >> the wrong SP value to GDB. The problem is that the HAL stub
> >> uses the same stack as the app being debugged. The HAL should
> >> be switching to a dedicated GDB stub stack.
> 
> > Actually the problem is that on the x86 16 bytes automatically get saved on
> > the stack by the CPU before we have a chance to do anything about it. The
> > solution is to adjust the SP stored by the __default_exception_vsr into the
> > HAL_Saved_Registers struct by 16.
> 
> That still doesn't fix the underlying problem. The stub has to operate on a separate
> stack in order for inferior function calls to work.

Not a problem I was intending to solve here :-).

> GDB will make use of the area
> under the stack to build a call frame. If the HAL stub is using that stack, then
> bad things happen.

So you've presumably added something to switch to the interrupt stack. Fair
enough, but isn't that a separate issue? The SP value stored in the
HAL_SavedRegisters is still off by 16 no matter what stack you're running
on. The SP value to report to GDB must still be the value at the time of
the exception, not the value just after it, no matter what.
 
Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine

  reply	other threads:[~2001-09-05  8:55 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-29  6:42 John Gumb
2001-08-29  6:47 ` Mark Salter
2001-09-05  8:32   ` Jonathan Larmour
2001-09-05  8:44     ` Mark Salter
2001-09-05  8:55       ` Jonathan Larmour [this message]
2001-09-05  9:33         ` Mark Salter
2001-09-05 14:16           ` Jonathan Larmour
2001-09-05 14:59             ` Mark Salter
2001-09-05 15:17               ` Jonathan Larmour
  -- strict thread matches above, loose matches on Subject: below --
2001-08-24  7:19 Patrick O'Grady
2001-08-23  2:54 John Gumb
2001-08-22 12:20 Allan Young
2001-08-15 15:08 John Gumb
2001-08-16  6:44 ` Jonathan Larmour
2001-08-17  0:31   ` Boris V. Guzhov
2001-08-17  6:17     ` Jonathan Larmour

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=3B964AE0.10557995@redhat.com \
    --to=jlarmour@redhat.com \
    --cc=ecos-discuss@sourceware.cygnus.com \
    --cc=john@talisker.demon.co.uk \
    --cc=msalter@redhat.com \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).