2016-03-24 3 views
2

Мне нужно отладить некоторый код haskell и выяснить, где проблема возникает во время выполнения. Когда я бегу моя программа говорит этотHaskell GHCI, похоже, не может вводить интерактивное выполнение основного модуля

main: Prelude.(!!): index too large 

, что приводит меня к мысли, что есть место, я посылаю список функций, которые я на самом деле не должно быть, и я не знаю, где. Это программа семантического анализа на 600+. Проблема в том, что я не могу для жизни меня выяснить, где это! ошибка есть. Документация по отладке действительно запутанна, и я не могу заставить GHCI сотрудничать, чтобы я мог понять это. Всякий раз, когда я бег ghci main.hs, это происходит:

GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help 
Loading package ghc-prim ... linking ... done. 
Loading package integer-gmp ... linking ... done. 
Loading package base ... linking ... done. 
Ok, modules loaded: Main. 
Prelude Main> 

Я не могу заставить его обратиться к

*Main> 

, так что я могу на самом деле установить контрольные точки и все, что прикольные вещи. Как мне заставить это работать?

ответ

5

Первая строка означает, что вы загружаете файл в скомпилированном режиме. Вы можете исправить это, убедившись, что нет компилируемой версии файла; или вы можете сказать GHCI использовать истолковано режим, предваряя * при загрузке файла:

Prelude Main> :l *Main 
*Main> 

(Или запустить ghci '*Main.hs' - адаптированный для вылетающих потребностей вашей оболочки в зависимости от обстоятельств.)

Смежные вопросы