[ruby-list:3042] Re: ruby 1.0-970528 released

From: MAEDA Shugo <shugo@...>
Date: 1997-05-29 09:30:24 UTC
List: ruby-list #3042
前田です。

On Thu, 29 May 97 14:43:48 JST,
Yukihiro Matsumoto <matz@caelum.co.jp> wrote:

|うーん,やはりJedを手元に置かないとダメかなあ.

今、家にもどって試してみたのですが、

On Thu, 29 May 97 11:28:11 JST,
Yukihiro Matsumoto <matz@caelum.co.jp> wrote:

|落ちるような小さいプログラムを作れませんか? 私のところでは以

落とすプログラムを作れました。
メールの最後に添付します。
rb_eval_stringするのをrb_rescueするとまずいみたいです。

    char *str = "undefined_method \"test\"";

としているところを

    char *str = "print \"test\"";

などとすればちゃんと"hello"と表示されて
正常に終了します。
backtraceはやはり取ることができませんでした。

なお、環境はLinux2.0.28 + gcc2.7.2です。

# rb_rescueで渡すのはVALUEでないといけないのかと思っていた
# のですが、そういうわけではないのですね。

前田 修吾 <shugo@po.aianet.ne.jp>

Attachments (1)

main.c (527 Bytes, text/x-c++src)
/************************************************

  main.c -

  $Author: matz $
  $Date: 1996/12/25 09:32:03 $
  created at: Fri Aug 19 13:19:58 JST 1994

************************************************/

#ifdef DJGPP
unsigned int _stklen = 0x100000;
#endif

#include "ruby.h"

void fail_to_eval(char *str)
{
    printf("failed\n");
}

void
main(argc, argv, envp)
    int argc;
    char **argv, **envp;
{
    char *str = "undefined_method \"test\"";

    ruby_init();
    rb_rescue(rb_eval_string, str, fail_to_eval, str);
}

In This Thread