[#19457] equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org>

ふと気がついたのですが、

39 messages 2003/02/02
[#19460] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/03

まつもと ゆきひろです

[#19473] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044245817.592933.31973.nullmailer@picachu.netlab.jp>,

[#19474] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19475] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044329220.257740.28127.nullmailer@picachu.netlab.jp>,

[#19476] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19477] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044331431.138035.28173.nullmailer@picachu.netlab.jp>,

[#19478] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19479] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044332948.099873.28206.nullmailer@picachu.netlab.jp>,

[#19482] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19486] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044338964.502066.28474.nullmailer@picachu.netlab.jp>,

[#19491] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19493] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19556] compare between String and Exception — Tanaka Akira <akr@...17n.org> 2003/02/12

さらに気が付いたのですが、

[#19514] [Oniguruma] Version 1.7.1 — "K.Kosako" <kosako@...>

ftp.ruby-lang.orgに、onigd20030207.tar.gzを置きました。

19 messages 2003/02/07

[#19548] [PATCH] file.c for (PR#389) and (PR#390) — nobu.nakada@...

なかだです。

20 messages 2003/02/11
[#19572] Re: [PATCH] file.c for (PR#389) and (PR#390) — pegacorn@... 2003/02/14

From: nobu.nakada@nifty.ne.jp

[#19648] Re: SEGV at search_method in eval.c (PR#400) — nobu.nakada@...

なかだです。

13 messages 2003/02/24

[ruby-dev:19652] Re: SEGV at search_method in eval.c (PR#400)

From: "NAKAMURA, Hiroshi" <nahi@...>
Date: 2003-02-24 14:48:08 UTC
List: ruby-dev #19652
なひです。RHG読んでないのがばれる。。。

> From: <nobu.nakada@nifty.ne.jp>
> Sent: Monday, February 24, 2003 11:12 PM

> At Mon, 24 Feb 2003 22:46:52 +0900,
> NAKAMURA, Hiroshi <nahi@mwd.biglobe.ne.jp> wrote:
> > > > stack traceは長いのでここにおいてあります。
> > > > http://rrr.jin.gr.jp/rwiki?cmd=view;name=ToDo320
> > > > 他に何か必要な情報はあるでしょうか。
> > >
> > > rubyのスタックトレースとか。
> > 
> > SEGVした瞬間のrubyのスタックトレースはどう取ればいいでしょうか。^^;
> 
> syslogとかには残ってませんか。

なさそうな気がしますが、単に調べるところを間違っている
だけかもしれません。

> > #10 0x400527fe in w_object (obj=1078229828, arg=0xbffebbd8, limit=-3)
> >     at marshal.c:325
> > 325             if (rb_respond_to(obj, s_dump)) {
> > (gdb) p obj
> > $3 = 1078229828
> > (gdb) p (struct RClass)obj
> > $4 = {basic = {flags = 1078229828, klass = 3221141900}, iv_tbl = 0xbffeb984,
> >   m_tbl = 0x40035a09, super = 135285569}
> > (gdb) up 4
> > #14 0x40052eb3 in w_object (obj=1078141208, arg=0xbffebbd8, limit=-2)
> >     at marshal.c:494
> > 494             w_ivar(ivtbl, &c_arg);
> > (gdb) p obj
> > $5 = 1078141208
> > (gdb) p (struct RClass)obj
> > $6 = {basic = {flags = 1078141208, klass = 3221142172}, iv_tbl = 0x40052eb3,
> >   m_tbl = 0x8ab3220, super = 3221142160}
> > (gdb)
> > 
> > 「オブジェクトの中身」のより良い見方を教えてください。
> 
> まずBUILTIN_TYPEを調べて、ruby.hの該当するT_*のstructへのポイン
> タにキャストしてください。
> 
>   p ((struct RBasic *)obj)->flags & 0x3f
> 
> たとえば上の値が7だったらStringなので、struct RString *です。
> 
>   p *(struct RString *)obj

ありがとうございます。やってみました。

#0  0x4012ad41 in __kill () from /lib/libc.so.6
(gdb) up 10
#10 0x400527fe in w_object (obj=1078229828, arg=0xbffebbd8, limit=-3)
    at marshal.c:325
325             if (rb_respond_to(obj, s_dump)) {
(gdb) p ((struct RBasic *)obj)->flags & 0x3f
$1 = 63
(gdb) printf "%x\n", $1
3f     # T_NODE? 
(gdb) up 4
#14 0x40052eb3 in w_object (obj=1078141208, arg=0xbffebbd8, limit=-2)
    at marshal.c:494
494             w_ivar(ivtbl, &c_arg);
(gdb) p ((struct RBasic *)obj)->flags & 0x3f
$2 = 7
(gdb) p (struct RString *)obj
$3 = (struct RString *) 0x40432118
(gdb) p *(struct RString *)obj
$4 = {basic = {flags = 7, klass = 1076034740}, len = 10,
  ptr = 0x81b9b30 "yield_call", orig = 0}
(gdb)


In This Thread