From: Andrew Cagney <ac131313@redhat.com>
To: Orjan Friberg <orjan.friberg@axis.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: CRIS port; frame cleanup crash
Date: Tue, 12 Aug 2003 17:36:00 -0000 [thread overview]
Message-ID: <3F392591.4050409@redhat.com> (raw)
In-Reply-To: <3F379A74.4080508@axis.com>
> After a long overdue update of my gdb cvs tree, I found that something broke late March/early April. I don't quite understand what goes on, but it seems to happen the first time a frame allocated by deprecated_frame_xmalloc_with_cleanup is freed by do_cleanups (which happens in cris_skip_prologue_main). gdb segfaults on a call to free with a pointer to that frame. The arm-tdep.c file contains the same construct of:
>
> old_chain = make_cleanup (null_cleanup, NULL);
> frame = deprecated_frame_xmalloc_with_cleanup (..., ...)
> <do something with frame>
> do_cleanups (old_chain);
Er, that points at a bug:
struct frame_info *
deprecated_frame_xmalloc (void)
{
struct frame_info *frame = FRAME_OBSTACK_ZALLOC (struct frame_info);
frame->this_id.p = 1;
return frame;
}
shouldn't be allocated from the frame obstack pool. I'll commit a fix.
> However, poking around in all the stuff that has been deprecated, I'm sort of at a loss as to where to start. Replacing the deprecated function/macros one at a time doesn't look feasible, since a lot of functionality is replaced by the same functions (push_dummy_code/push_dummy_call for example). Is there a preferred way of doing it, or is it just a matter of diving right into it? I'd prefer to do it in a structured way to be able to catch when things start to break. I see there are a couple of targets that have made the transition (d10v and m68hc11 for example), so that should provide some help.
ia64, Arm, ... Some people are diving straight in, some are atacking the
edges - updating any deprecated methods first.
Andrew
next prev parent reply other threads:[~2003-08-12 17:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-11 13:30 Orjan Friberg
2003-08-12 15:11 ` Orjan Friberg
2003-08-12 17:36 ` Andrew Cagney [this message]
2003-08-13 10:17 ` Orjan Friberg
2004-02-12 18:59 ` Orjan Friberg
2004-02-12 20:06 ` Andrew Cagney
2004-02-14 13:38 ` Orjan Friberg
2004-02-14 14:52 ` Andrew Cagney
2004-02-15 17:41 ` Orjan Friberg
2004-02-16 18:19 ` Orjan Friberg
2004-02-16 18:43 ` Andrew Cagney
2004-02-18 17:06 ` Orjan Friberg
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=3F392591.4050409@redhat.com \
--to=ac131313@redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=orjan.friberg@axis.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