故意导致Ruby 1.8.7下的segfault

故意导致Ruby 1.8.7下的segfault,ruby,segmentation-fault,Ruby,Segmentation Fault,在MRI Ruby 1.8.7中,故意导致segfault的最简单方法是什么?您可以编写一个反引用空指针的坏C模块。您可以编写一个反引用空指针的坏C模块。您可以签出(上次更新是在2007年)。您必须手动下载并安装gem,因为它无法通过RubyGems获得。您可以查看(它上次更新是在2007年)。您必须手动下载并安装gem,因为它无法通过RubyGems获得。根据您的需要(和环境),您可以让它运行,找到解释器的进程ID并执行以下操作: $ kill -s SIGSEGV $pid 我刚刚用bas

在MRI Ruby 1.8.7中,故意导致segfault的最简单方法是什么?

您可以编写一个反引用空指针的坏C模块。

您可以编写一个反引用空指针的坏C模块。

您可以签出(上次更新是在2007年)。您必须手动下载并安装gem,因为它无法通过RubyGems获得。

您可以查看(它上次更新是在2007年)。您必须手动下载并安装gem,因为它无法通过RubyGems获得。

根据您的需要(和环境),您可以让它运行,找到解释器的进程ID并执行以下操作:

$ kill -s SIGSEGV $pid
我刚刚用bash在OSX上试用过,它在一个ed(1)(一个真正的文本编辑器)过程中起作用

您还可以在调试器中运行Ruby,并手动将一个或两个指针设置为零。变量中的一个指针可以很好地工作。当然,您可能需要使用调试符号构建一个解释器,并且需要了解解释器内部的一两件事。

根据您的需要(和环境),您可以让它运行,找到解释器的进程ID并执行以下操作:

$ kill -s SIGSEGV $pid
我刚刚用bash在OSX上试用过,它在一个ed(1)(一个真正的文本编辑器)过程中起作用


您还可以在调试器中运行Ruby,并手动将一个或两个指针设置为零。变量中的一个指针可以很好地工作。当然,您可能需要使用调试符号构建一个解释器,并且您需要了解解释器内部的一两件事。

如果您针对特定的补丁级别执行此操作,请查看Ruby,查找在创建该补丁级别后报告的导致分段错误的错误。当您看到1.8.7时,您可能希望看到


例如,对于我的Windows机器上的Ruby(1.9)版本,
Thread.kill(nil)
是,我认为它也适用于Ruby 1.8。

如果您针对特定的补丁级别执行此操作,请查看Ruby的补丁级别创建后报告的导致分段错误的bug。当您看到1.8.7时,您可能希望看到


例如,对于我的Windows机器上的Ruby(1.9)版本,
Thread.kill(nil)
是,我认为它也适用于Ruby 1.8。

谢谢大家的建议!我接受这个答案是因为它是最简单的,但是“mu是短的”的答案也是很好的。谢谢大家的建议!我接受这个是因为它是最简单的,但是“mu是短的”的答案也是很好的。
Thread.kill(nil)
在1.8.7中似乎不起作用。不过,谢谢你的建议@泰森:你的红宝石等级是多少?(在命令行上执行
ruby-v
Thread.kill(nil)
在1.8.7中似乎不起作用。不过,谢谢你的建议@泰森:你的红宝石等级是多少?(命令行上的Do
ruby-v