[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

debuggery of extensions from segfault

Matt Maycock

3/30/2006 8:03:00 PM

I wrote my first extension!

The functions work fine... except when I'm making multiple calls in a loop.
Then, it segfaults. I wrote some more code in my extension to output
equivalent c code to do the same job - even across my multiple data, and it
does fine. So I'm thinking either there's some weirdness I don't know
about, I'm accidentally clobbering some data, or there's a bug in ruby that
I stumbled across (ruby 1.8.4 (2005-12-24) [powerpc-darwin8.4.0]) - my
question is, how do I figure this out? Right now, my plan is to add
fprintf(stderr, "%s [%d]\n", __FILE__, __LINE__); to the end of every line
in my c extension and see what gets dumped... but is there an easier way?

Thanks,

~Matthew Maycock

--
There's no word in the English language for what you do to a dead thing to
make it stop chasing you.
2 Answers

Ara.T.Howard

3/30/2006 8:12:00 PM

0

Matt Maycock

3/30/2006 9:24:00 PM

0

and here I spent a great deal of time wrote something to add debug
statements to all my code.

ara t howard, you are wonderful.

~Matthew Maycock

On 3/30/06, ara.t.howard@noaa.gov <ara.t.howard@noaa.gov> wrote:
>
> On Fri, 31 Mar 2006, Matt Maycock wrote:
>
> > I wrote my first extension!
> >
> > The functions work fine... except when I'm making multiple calls in a
> loop.
> > Then, it segfaults. I wrote some more code in my extension to output
> > equivalent c code to do the same job - even across my multiple data, and
> it
> > does fine. So I'm thinking either there's some weirdness I don't know
> > about, I'm accidentally clobbering some data, or there's a bug in ruby
> that
> > I stumbled across (ruby 1.8.4 (2005-12-24) [powerpc-darwin8.4.0]) - my
> > question is, how do I figure this out? Right now, my plan is to add
> > fprintf(stderr, "%s [%d]\n", __FILE__, __LINE__); to the end of every
> line
> > in my c extension and see what gets dumped... but is there an easier
> way?
> >
> > Thanks,
> >
> > ~Matthew Maycock
>
> - write a script called 'a.rb' that uses your ext
>
> - start ruby in gdb using
>
> gdb `which ruby`
>
> - run at gdb prompt using (assuming a.rb in cwd)
>
> > run 'a.rb'
>
> - when you seg fault type
>
> > where
>
>
> hth.
>
>
>
> -a
> --
> share your knowledge. it's a way to achieve immortality.
> - h.h. the 14th dali lama
>
>


--
There's no word in the English language for what you do to a dead thing to
make it stop chasing you.