Mirror of the gdb mailing list
 help / color / mirror / Atom feed
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


      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