加载guile-readline时出现GNU Guile段错误

时间:2018-11-16 16:28:11

标签: scheme readline guile

我将guile嵌入正在编写的一个小程序中,我选择使用guile-readline作为扩展。此扩展名可以很好地使用默认REPL (use-modules (ice-9 readline)) (activate-readline)

但是,当我尝试在通过调用scm_shell();实例化的REPL中调用相同代码时,程序会在scm_init_readline上出现段错误。

我发现(ice-9 readline)可能在幕后调用(load-extension "guile-readline" "scm_init_readline")。这样做是从默认guile REPL guile开始的,因为在调用之后,(provided? 'readline)会产生#t

仍然,从通过scm_shell(0, NULL);调用的自定义REPL中,此表达式在scm_init_readline处(从/usr/lib/guile/2.2/extensions/guile-readline.so)出现段错误。有问题的特定说明:

repz cmpsb %es:(%rdi),%ds:(%rsi) 

这时已经转储了寄存器,很明显rsi0(所以看起来是寻址操作数段错误的内存)。

我不确定scm_shell()是否避免了guile REPL本身所做的关键自举操作。

在此问题上提供的任何帮助将不胜感激,我四处搜寻,发现有类似问题但无解决方案的人。

0 个答案:

没有答案