From: Daniel Jacobowitz <drow@mvista.com>
To: Faheem Mitha <faheem@email.unc.edu>
Cc: gdb@sources.redhat.com
Subject: Re: setfault calling functions within gdb
Date: Tue, 10 Sep 2002 06:27:00 -0000 [thread overview]
Message-ID: <20020910132802.GA6062@nevyn.them.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0209092345270.13388-100000@Chrestomanci>
On Mon, Sep 09, 2002 at 11:55:53PM -0400, Faheem Mitha wrote:
>
> Dear People,
>
> I'm having problems calling functions from within gdb. Can someone tell me
> what I am doing wrong? Consider the following innocuous program
>
> ---------------------------------------------------------
> #include<vector>
> #include <iostream>
>
> using std::vector;
> using std::cout;
>
> typedef vector<double> Point;
> void print(Point pt);
>
> int main()
> {
> Point foo(3,1.0);
> //print(foo);
> }
>
> void print(Point pt)
> {
> unsigned int i;
> cout << "[";
> for(i=0; i < pt.size(); i++)
> {
> cout << pt[i];
> cout << ",";
> }
> cout << "]";
> }
> -----------------------------------------------------------
>
> When I set a breakpoint after the definition of foo and call
> print(foo) I get a segfault. There appears to be nothing wrong with
> this function, since print(foo) when compiled into the function works
> as expected. Also, "print foo[0]" works fine. There seem to be two
> possibilities; a) I am doing something wrong, b) this is a bug in
> gdb. I'm hoping it is the former. I dimly recall calling functions
> successfully sometime in the past, but I can't remember whether it was
> in C or C++ code.
>
> Any help would be greatly appreciated. This is really frustrating!
> Output from gdb follows. I'm using gdb, gcc-3.0 on Debian Sarge. The
> respective versions are
Thanks for the great testcase. It may be a couple days before I have
time to look at it, but I know roughly what's wrong: we're trying to
pass foo as a structure-by-value, as if this were C, and in C++ we are
required to do this by the copy constructor. Or something similar.
When it calls the destructor, as the argument goes out of scope, it is
crashing trying to free something already freed.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
prev parent reply other threads:[~2002-09-10 13:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-09 20:58 Faheem Mitha
2002-09-09 23:49 ` Jim Blandy
2002-09-10 20:12 ` Faheem Mitha
2002-09-10 6:27 ` Daniel Jacobowitz [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=20020910132802.GA6062@nevyn.them.org \
--to=drow@mvista.com \
--cc=faheem@email.unc.edu \
--cc=gdb@sources.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