故意导致Ruby 1.8.7下的segfault
在MRI Ruby 1.8.7中,故意导致segfault的最简单方法是什么?您可以编写一个反引用空指针的坏C模块。您可以编写一个反引用空指针的坏C模块。您可以签出(上次更新是在2007年)。您必须手动下载并安装gem,因为它无法通过RubyGems获得。您可以查看(它上次更新是在2007年)。您必须手动下载并安装gem,因为它无法通过RubyGems获得。根据您的需要(和环境),您可以让它运行,找到解释器的进程ID并执行以下操作:故意导致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
$ 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中似乎不起作用。不过,谢谢你的建议@泰森:你的红宝石等级是多少?(命令行上的Doruby-v
)