2016-04-10 2 views
4

Я хотел бы профайл программы, управляемой Stack. Файл был построен с использованием с помощью следующей команды:Получение файла профилирования из «exec exec»

stack build --executable-profiling --library-profiling --ghc-options="-fprof-auto -rtsopts"

И работать с этой командой

stack exec myProgram.exe -- inputArg +RTS -p

Я знаю, что программа запуска (из выходного файла), но я ожидал файл myProgram.prof, который будет создан, я не могу найти этот файл.

Если я выполняю программу без использования стека, создается файл профилирования, но есть ли способ заставить это работать с помощью Stack?

+0

Когда я делаю это с пустым проектом ('stack new foo'), я _do_ получаю .prof. Из вашего '.exe', я предполагаю, что вы на Windows? Какова ваша 'stack -version'? (Вы также можете получить лучшую помощь, подав вопрос на GitHub Stack.) – hao

+0

Моя версия 1.0.4. Да, я работаю в Windows. – user668074

+0

Я запускаю 1.0.4 на Mac OS, и он отлично работает, возможно, это ошибка в реализации стека окон. –

ответ

0

-- останавливает RTS от обработки дополнительных аргументов командной строки, но передается в программу. Итак, ваш -- виден как stack, так и myProgram.exe, и поэтому флаги +RTS -p не отображаются в 0TSRTS. Вместо этого попробуйте

stack exec -- myProgram.exe inputArg +RTS -p 
Смежные вопросы