ТЕРРИТОРИЯ ХАКЕРОВ. ТЕРРИТОРИЯ ХАКЕРОВ. (Вас предупреждали.)
Флаги дампа
ТЕРРИТОРИЯ ХАКЕРОВ. ТЕРРИТОРИЯ ХАКЕРОВ. (Вас предупреждали.)
Флаги дампа
-ddump-to-file Вывод для каждого из флагов, начинающихся с «-ddump», записывается в один или несколько файлов. Если нужно сохранить весь вывод для одного флага в одном файле, используйте -ddump-file-prefix=⟨str⟩ (см. описания ниже). В противном случае вывод будет записан в несколько файлов: один для данных, не относящихся к конкретному модулю, и несколько для данных по модулям. Суффикс файла дампа зависит от включённого флага: например, вывод -ddump-simpl будет записан в prefix.dump-simpl.
-ddump-file-prefix=⟨str⟩ Задаёт префикс имён файлов, используемых для отладочного вывода. Например, -ddump-file-prefix=Foo приведёт к тому, что вывод -ddump-simpl будет записан в Foo.dump-simpl.
-fdump-with-ways включено
При компиляции Main.hs с профилированием и без него будут создаваться Main.p.dump-simpl и Main.dump-simpl вместо перезаписи вывода одного режима выводом другого.
-ddump-json Ранее этот флаг использовался для создания диагностики GHC в формате JSON, но теперь он устарел. Вместо него используйте -fdiagnostics-as-json.
-dshow-passes Выводит название каждого прохода, затраченное время выполнения и объём выделенной в куче памяти по мере выполнения. Обратите внимание: это может немного снизить производительность, поскольку компилятор будет активнее вычислять результаты проходов, чтобы точнее учитывать затраты.
Выводятся два типа сообщений: сообщения, начинающиеся с ***, обозначают начало фазы компиляции, а сообщения, начинающиеся с !!!, отмечают завершение прохода и сопровождаются статистикой по выделенной памяти и времени выполнения.
-dipe-stats Для каждого модуля выводит простую статистику о таблицах информации с данными IPE и о количестве таких таблиц для каждого типа замыкания. Это полезно, например, для проверки того, что таблицы информации STACK должным образом исключаются из карты таблиц информации или включаются в неё.
-dfaststring-stats Выводит статистику использования компилятором быстрых строк.
-ddump-faststrings По завершении выводит всю таблицу FastString. Чтобы записать её в файл, можно использовать -ddump-file-prefix=⟨str⟩.
-dppr-debug Для отладочного вывода используются различные «стили». Рассмотрим, например, вывод типов. В стиле «user» (по умолчанию) внутренние представления типов в компиляторе по возможности отображаются в синтаксисе исходного кода Haskell. В стиле «debug» (по умолчанию используется для отладочного вывода) типы печатаются с явными forall, а к переменным добавляется их уникальный идентификатор (чтобы можно было различать сущности, которые выглядят одинаково, но таковыми не являются). Этот флаг включает более подробный стиль «debug» для отладочного вывода.
-ddump-timings Выводит статистику по объёму выделенной памяти и времени выполнения для различных этапов компиляции. Объём выделенной памяти измеряется в байтах, время — в миллисекундах.
GHC — большая программа, состоящая из нескольких этапов. С помощью перечисленных ниже флагов -ddump-⟨pass⟩ можно вывести сведения о различных этапах компиляции. Обратите внимание, что некоторые из них могут создавать очень большой объём вывода. Чтобы он не засорял стандартный вывод, передайте -ddump-to-file.
Эти флаги выводят различную информацию о внешнем интерфейсе GHC, включая парсер и средство чтения файлов интерфейса.
-ddump-parsed Вывести результат работы парсера
-ddump-parsed-ast Вывести результат работы парсера в виде синтаксического дерева
-dkeep-comments Включать комментарии в результат работы парсера. Полезно в сочетании с -ddump-parsed-ast.
-ddump-if-trace Заставляет загрузчик интерфейсов очень подробно сообщать о своих действиях.
Эти флаги выводят различную информацию о проверяющем типы и переименовывающем компонентах GHC.
-ddump-tc-trace Заставляет проверяющий типы компонент очень подробно сообщать о своих действиях.
-ddump-rn-trace Заставляет переименовывающий компонент очень подробно сообщать о своих действиях.
-ddump-ec-trace Заставляет проверяющий полноту сопоставления с образцом компонент очень подробно сообщать о своих действиях.
-ddump-cs-trace Заставляет решатель ограничений очень подробно сообщать о своих действиях.
-ddump-rn-stats Выводит сводку о том, какие сведения пришлось загрузить переименовывающему компоненту.
-ddump-rn Вывести результат работы переименовывающего компонента
-ddump-rn-ast Вывести результат работы переименовывающего компонента в виде синтаксического дерева
-ddump-tc Вывести результат работы проверяющего типы компонента. По умолчанию значительная часть подробностей скрыта; для их отображения можно использовать этот флаг вместе с -fprint-typechecker-elaboration.
-ddump-tc-ast Вывести результат работы проверяющего типы компонента в виде синтаксического дерева
-ddump-hie Вывести синтаксическое дерево файла hie, если создаются расширенные файлы интерфейса
-ddump-splices Вывести выражения Template Haskell, вставляемые в код, и код Haskell, в который вычисляется каждое выражение.
-dth-dec-file Вывести развёртки всех вставок Template Haskell верхнего уровня в module.th.hs для каждого файла module.hs.
-ddump-types Вывести сигнатуру типа для каждого значения, определённого на верхнем уровне модуля. Список упорядочен по алфавиту. При использовании -dppr-debug также выводятся сигнатуры типов всех импортированных и системных сущностей; это полезно для отладки компилятора.
-ddump-deriv Вывести производные экземпляры
Эти флаги выводят данные о различных этапах конвейера GHC Core-to-Core. Конвейер начинается с десахаризатора и включает упрощатель, преобразование worker-wrapper, механизм правил, специализатор, анализаторы строгости и вхождений, а также проход устранения общих подвыражений.
-ddump-call-arity Вывести результат прохода анализа арности вызовов (-fcall-arity).
-ddump-core-stats Вывести однострочную сводку о размере программы Core в конце конвейера оптимизации.
-ddump-ds -ddump-ds-preopt Вывести результат работы десахаризатора. -ddump-ds выводит результат после выполнения очень простого оптимизатора (который удаляет много лишнего и поэтому разумно включён по умолчанию). -ddump-ds-preopt выводит результат после десахаризации, но до запуска очень простого оптимизатора.
-ddump-exitify Вывести результат прохода exitification (-fexitification), который пытается извлечь код из рекурсивных функций.
-ddump-simpl-iterations Показывать результат каждой итерации упрощателя (для каждого запуска упрощателя задано максимальное число итераций, обычно равное 4).
-ddump-simpl-stats Вывести статистику о количестве выполненных преобразований каждого типа. Если добавить -dppr-debug, будет выведена более подробная информация.
-ddump-simpl-trace Вывести трассировочные сообщения различных функций упрощателя. Создаёт довольно большой объём вывода.
-dverbose-core2core Показывать результат промежуточного прохода Core-to-Core (очень много вывода!). Используйте этот флаг, когда ситуация совсем безнадёжна:
% ghc -noC -O -ddump-simpl -dverbose-core2core -dcore-lint Foo.hs
-ddump-spec Вывести результат прохода специализации классов типов
-ddump-spec-constr 9.8.1
Вывести результат прохода специализации SpecConstr
-ddump-rules Вывести все правила переписывания, заданные в этом модуле; см. раздел Управление ходом применения правил переписывания.
-ddump-rule-firings Вывести названия всех правил, сработавших в этом модуле
-ddump-rule-rewrites Вывести подробную информацию обо всех правилах, сработавших в этом модуле
-drule-check=⟨str⟩ Этот флаг полезен для выяснения, почему ожидаемое правило не срабатывает.
Правила фильтруются по заданной пользователем строке: правило сохраняется, если его имя начинается с этой строки. Затем проход проверяет, могут ли какие-либо из этих правил применяться к программе, но не сработали по какой-либо причине. Например, указание -drule-check=SPEC позволит проверить, есть ли вызовы, к которым могло бы примениться правило, созданное специализацией.
-dinline-check=⟨str⟩ Этот флаг полезен для выяснения, почему определение не встраивается.
Если передать этому флагу строку, будут выведены сведения обо всех функциях, имена которых начинаются с этой строки.
Например, при изучении Core вашей программы вы заметили, что foo не встраивается. Передайте -dinline-check foo, и вы увидите отчёт о том, почему foo не встраивается.
-ddump-simpl Вывести результат работы упрощателя (проходы Core-to-Core)
-ddump-inlinings Вывести сведения о встраиваниях, выполненных упрощателем.
-ddump-verbose-inlinings Вывести сведения обо всех вариантах встраивания, рассмотренных упрощателем, включая те, которые в итоге не были выполнены. Вывод содержит различную информацию, которую упрощатель использует для определения целесообразности встраивания.
-ddump-stranal Переименован в -ddump-dmdanal.
-ddump-dmdanal Вывести результат анализа спроса.
Синтаксис и семантику аннотаций спроса см. в описании -fstrictness.
-ddump-str-signatures Переименован в -ddump-dmd-signatures.
-ddump-dmd-signatures Вывести сигнатуры спроса верхнего уровня, полученные в результате анализа спроса.
Синтаксис и семантику аннотаций спроса см. в описании -fstrictness.
-ddump-cpranal Вывести результат анализа Constructed Product Result
-ddump-cpr-signatures Вывести сигнатуры Constructed Product Result
-ddump-cse Вывести результат прохода устранения общих подвыражений (CSE)
-ddump-full-laziness -ddump-float-out Вывести результат прохода полной ленивости (также известного как float-out); см. -ffull-laziness.
-ddump-float-in Вывести результат прохода float-in; см. -ffloat-in.
-ddump-liberate-case Вывести результат прохода liberate-case; см. -fliberate-case.
-ddump-static-argument-transformation Вывести результат прохода преобразования статических аргументов; см. -fstatic-argument-transformation.
-ddump-worker-wrapper Вывести результат разделения worker/wrapper
-ddump-occur-anal Вывести результат «анализа вхождений»
-ddump-prep Вывести результат прохода подготовки Core
-ddump-late-cc Вывести результат прохода LateCC после добавления центров затрат.
-ddump-view-pattern-commoning Вывести объединяемые шаблоны-представления.
Эти флаги выводят данные о различных этапах конвейера STG в GHC.
-ddump-stg-from-core Показать результат прохода CoreToStg.
-dverbose-stg2stg Показать результат промежуточного прохода STG-to-STG (очень много вывода!).
-ddump-stg-unarised Показать результат прохода unarise.
-ddump-stg-cg Показать результат работы прохода Stg2Stg над STG. Это результат применения оптимизационных проходов Stg2Stg.
-ddump-stg-tags Показать результат прохода вывода тегов.
-ddump-stg-final Показать результат последнего прохода STG перед генерацией Cmm.
-ddump-stg Псевдоним для -ddump-stg-from-core. Устарел; вместо него рекомендуется использовать более конкретные флаги: -ddump-stg-from-core, -ddump-stg-final и т. д.
-ddump-stg-from-js-sinker Показать результат прохода JavaScript Sinker.
Эти флаги выводят данные о различных этапах конвейера C-\- в GHC.
-ddump-cmm-verbose-by-proc Вывести данные основных этапов конвейера C-\-. При компиляции .cmm также выводится результат разбора файла. Проходы, выполняемые выбранной серверной частью, не включаются. В настоящее время дополнительные проходы выполняют только серверные части NCG (-ddump-opt-cmm).
Дампы Cmm не содержат недостижимые блоки, поскольку блоки выводятся в обратном постпорядке.
-ddump-cmm-verbose При использовании вместе с -ddump-to-file записывает дампы основных этапов конвейера C-\- в файлы (отдельный файл для каждого этапа).
-ddump-cmm-from-stg Вывести результат преобразования STG в C-\-
-ddump-cmm-raw Вывести «сырой» C-\-.
-ddump-cmm-cfg Вывести результаты прохода оптимизации потока управления C-\-.
-ddump-cmm-thread-sanitizer Вывести результаты прохода C-\-, отвечающего за добавление инструментирования, включаемого флагом -fcmm-thread-sanitizer.
-ddump-cmm-cbe Вывести результаты прохода устранения общих блоков C-\- (CBE).
-ddump-cmm-switch Вывести результаты прохода понижения конструкций switch в C-\-.
-ddump-cmm-proc Вывести результаты прохода анализа точек процедур C-\-.
-ddump-cmm-sp Вывести результаты прохода раскладки стека C-\-.
-ddump-cmm-sink Вывести результаты прохода перемещения вниз C-\-.
-ddump-cmm-caf Вывести результаты прохода анализа CAF в C-\-.
-ddump-cmm-procmap Вывести результаты прохода построения карты точек процедур C-\-.
-ddump-cmm-split Вывести результаты прохода разделения по точкам процедур C-\-.
-ddump-cmm-info Вывести результаты прохода дополнения таблиц информации C-\-.
-ddump-cmm-cps Вывести результаты прохода CPS.
-ddump-cmm Вывести результат обработки конвейером C-\-
-ddump-cfg-weights Вывести граф потока управления (CFG) с весами, используемыми новым кодом раскладки блоков. Каждый CFG выводится в формате dot, что упрощает его визуализацию.
-ddump-llvm Код LLVM, созданный генератором кода LLVM
-ddump-c-backend Вывести код C, созданный серверной частью C (без регистрации).
Эти флаги выводят данные о различных этапах конвейера генератора машинного кода, который принимает C-\- и создаёт машинный ассемблерный код.
-ddump-cmm-opt Вывести результаты оптимизирующих проходов преобразования C-\- в C-\-, выполняемых NCG.
-ddump-opt-cmm Псевдоним для -ddump-cmm-opt
-ddump-asm-conflicts Вывести конфликты (виртуальных) регистров («пересечения») для распределителя регистров методом раскраски графа (-fregs-graph).
-ddump-asm-native Вывести исходный ассемблерный код, созданный из C-\-.
-ddump-asm-liveness Вывести результат прохода анализа живости регистров.
-ddump-asm-regalloc Вывести результат прохода распределения регистров.
-ddump-asm-regalloc-stages Вывести этапы построения и выгрузки регистров распределителя регистров методом раскраски графа (-fregs-graph).
-ddump-asm-stats Вывести статистику распределителя регистров.
-ddump-asm Вывести окончательный ассемблерный код, созданный генератором машинного кода.
-ddump-js Вывести окончательный код JavaScript, созданный генератором кода JavaScript.
-ddisable-js-minifier Добавлять пробелы и отступы для удобства чтения при генерации JavaScript.
-ddisable-js-c-sources При отладке может быть полезно отключить связывание с исходными файлами C, скомпилированными в JavaScript с помощью Emscripten. Это также отключает связывание с RTS Emscripten. Обратите внимание: код, вызывающий этот код C или использующий примитивы Emscripten, завершится с ошибкой во время выполнения (например, из-за неопределённых функций).
Эти флаги выводят различные сведения из других бэкендов.
-ddump-bcos Вывести объекты байт-кода (BCO), созданные для интерпретатора байт-кода GHC.
-ddump-debug Вывести сгенерированную отладочную информацию (DWARF), полученную с помощью флага -g.
-ddump-rtti Отслеживать вывод типов во время выполнения, выполняемый различными командами интерпретатора.
-ddump-foreign Вывести заглушки экспорта внешних функций.
-ddump-ticked Вывести код, инструментированный HPC (Наблюдение за покрытием кода).
-ddump-hpc Псевдоним для -ddump-ticked.
-ddump-mod-map Вывести сопоставление модулей с источниками и способами их получения:
(hidden module): Модуль скрыт и поэтому никогда не будет доступен для импорта.(unusable module): Модуль недоступен, поскольку пакет непригоден для использования.(hidden package): Этот модуль есть в списке экспортируемых модулей некоторого пакета, но сам пакет скрыт.(exposed package): Модуль доступен для импорта.(reexport by <PACKAGES>): Этот модуль доступен через реэкспорт из набора открытых пакетов.(hidden reexport by <PACKAGES>): Этот модуль доступен через реэкспорт из набора скрытых пакетов.(package flag): Этот модуль экспортируется с помощью флага пакета.-dppr-user-length В сообщениях об ошибках выражения выводятся до определённой «глубины», а подвыражения, выходящие за её пределы, заменяются многоточиями. Этот флаг задаёт глубину. Значение по умолчанию — 5.
-dppr-cols=⟨n⟩ Задать ширину отладочного вывода. Используйте этот флаг, если строки кода слишком часто переносятся. Например: -dppr-cols=200.
-dppr-case-as-let Выводить выражения case с единственной альтернативой так, как если бы они были строгими выражениями let. Это полезно, если код часто выполняет распаковку.
-dhex-word-literals Выводить значения типов Word# и Word64# (но не значения типов Int# и Int64#) в шестнадцатеричном, а не десятичном формате. Шестнадцатеричное представление дополняется нулями до длины, равной степени двойки. Например: 0x0A0A##, 0x000FFFFF##, 0xC##. Этот флаг может быть полезен, если вы формируете битовый шаблон, который должен корректно работать на 32- или 64-разрядной архитектуре. Вывод шестнадцатеричных литералов после оптимизаций и свёртки констант упрощает проверку корректности сгенерированного битового шаблона.
-dno-debug-output Подавить весь непредусмотренный отладочный вывод. Если GHC собран с параметром DEBUG, иногда он выводит отладочную информацию, представляющую интерес для разработчиков. Дополнительный вывод может сбивать с толку тестовую инфраструктуру и приводить к ложным сбоям тестов, поэтому этот флаг позволяет его отключить.
Дампы Core содержат большой объём информации. В зависимости от выполняемой задачи не вся она будет полезна. Используйте эти флаги, чтобы подавить неинтересующие вас части.
-dsuppress-all Подавить всё, что можно подавить, кроме уникальных идентификаторов, поскольку без них вывод часто становится неоднозначным. Если вы хотите увидеть только общую структуру кода, начните с этого.
-dsuppress-ticks Подавить «тики» в выводе форматтера.
-dsuppress-uniques Подавить вывод уникальных идентификаторов. Из-за этого вывод может стать неоднозначным (например, будет непонятно, где привязано вхождение «x»), но в выводе двух запусков компилятора станет гораздо меньше несущественных различий, так что можно будет применить diff. Когда diff покажет, где искать, попробуйте выполнить команду ещё раз без -dsuppress-uniques
-dsuppress-idinfo Подавить расширенную информацию об идентификаторах в местах их привязки. Она включает сведения о строгости и шаблоны инлайнера. Использование этого флага может вдвое уменьшить размер дампа Core за счёт исключения шаблонов инлайнера
-dsuppress-unfoldings Подавить вывод стабильного развёртывания переменной в месте её привязки.
-dsuppress-module-prefixes Подавить вывод префиксов квалификаторов модулей. Это Data.List в Data.List.length.
-dsuppress-timestamps Подавить вывод временных меток. Это упрощает сравнение дампов.
-dsuppress-type-signatures Подавить вывод сигнатур типов.
-dsuppress-type-applications Подавить вывод применений типов.
-dsuppress-coercions Подавить вывод преобразований типов.
-dsuppress-coercion-types -dsuppress-var-kinds Подавить вывод видов переменных
-dsuppress-stg-free-vars Подавить вывод списков свободных переменных замыканий в выводе STG
-dsuppress-core-sizes 9.4.1
Подавить вывод статистики размера Core для каждой привязки
-dsuppress-stg-reps 9.6.1
по умолчанию: включено
Отключение этого параметра приводит к аннотированию некоторых аргументов STG их prim rep.
-dlint -dcore-lint, -dstg-lint, -dcmm-lint, -dasm-lint, -fllvm-fill-undef-with-garbage, -fcatch-nonexhaustive-cases, -debug
9.4.1
Включить различные ресурсоёмкие проверки корректности между проходами в GHC и его системе времени выполнения. В частности, этот флаг не включает -falignment-sanitisation, поскольку он влечёт значительные затраты во время выполнения.
-dcore-lint Включить ресурсоёмкие проверки корректности между проходами в GHC на уровне Core. (Проверяется корректность GHC, а не вашего кода.)
-dlinear-core-lint Включить проверку линейности в GHC. В настоящее время некоторые оптимизации GHC могут нарушать линейность, и существуют корректные программы, которые не проходят проверку Linear Core Lint. В ближайшем будущем этот параметр будет удалён и включён в обычную проверку Core Lint.
-dstg-lint То же самое для уровня STG.
-dcmm-lint То же самое для уровня C-\-.
-dasm-lint Включить проверки корректности между проходами в GHC на уровне генератора кода.
-fllvm-fill-undef-with-garbage Указать генератору кода LLVM заполнять мёртвые регистры STG мусорными данными вместо undef в вызовах. Это упрощает обнаружение трудноуловимых ошибок генератора кода и системы времени выполнения (например, см. #11487).
-falignment-sanitisation Компилировать с проверками выравнивания для всех разыменований информационных таблиц. Это может быть полезно при поиске проблем с тегированием указателей.
-fproc-alignment 8.6.1
Выравнивать функции по границам, кратным заданному значению. Допустимы только значения, являющиеся степенями двойки.
-fproc-alignment=64 можно использовать, чтобы ограничить влияние выравнивания на производительность, поскольку каждая функция будет начинаться с границы строки кэша. Однако принудительное увеличение выравнивания в целом снижает производительность.
-fcatch-nonexhaustive-cases В некоторых случаях GHC генерирует выражения case без альтернативы по умолчанию:
С этим флагом в таких случаях GHC генерирует альтернативу по умолчанию с error. Это полезно при отладке ошибок анализа спроса или проверки типов, которые иногда могут проявляться в виде ошибок сегментации.
-forig-thunk-info При отладке циклических thunk полезно знать исходную информационную таблицу вычисляемого thunk. Этот флаг включает логику генерации кода, необходимую для этого: вместе с обычным кадром обновления создаётся кадр стека stg_orig_thunk_info; такие кадры orig_thunk не влияют на выполнение, но сохраняют исходную информационную таблицу обновляемого thunk для анализа отладочными инструментами. Подробности см. в Note [Original thunk info table frames] в GHC.StgToCmm.Bind.
-fcheck-prim-bounds Операции primops, такие как writeArray#, обычно ведут себя небезопасно, полагаясь на то, что пользователь сам выполнит проверку границ. Этот флаг указывает генератору кода инструментировать такие операции проверкой границ, которая прерывает программу при обнаружении выхода за границы.
Обратите внимание, что этот флаг предназначен только для отладки, а не для использования в качестве основного средства обнаружения обращений за пределы границ.
-fcmm-thread-sanitizer Включает генерацию инструментирования обращений к памяти для ThreadSanitizer <https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual>. При компиляции и компоновке требуется использовать -fsanitize=thread или аналогичный параметр.
-dinitial-unique=⟨s⟩ Начать выделение UniqSupply с ⟨s⟩.
-dunique-increment=⟨i⟩ Задать приращение для генерируемых Unique равным ⟨i⟩.
Это полезно в сочетании с -dinitial-unique=⟨s⟩ для проверки того, зависят ли сгенерированные файлы от порядка Unique.
Некоторые интересные значения:
-dinitial-unique=0 -dunique-increment=1 — текущий последовательный UniqSupply
-dinitial-unique=16777215 -dunique-increment=-1 — UniqSupply, генерирующий значения в убывающем порядке-dinitial-unique=1 -dunique-increment=PRIME — если PRIME достаточно велико, чтобы часто происходило переполнение, порядок будет непоследовательным-dno-typeable-binds Отключает генерацию привязок, связанных с Typeable, для модулей и типов. Это полезно при отладке, поскольку уменьшает размер модулей и дампов, но компилятор завершится с аварийной ошибкой, если вы попытаетесь использовать экземпляры Typeable для сущностей, собранных с этим флагом.
-dtag-inference-checks Если вывод тегов указывает, что определённое значение должно быть помечено тегом, генерировать код для проверки этого во время выполнения. При неудачной проверке программа завершится. Это помогает выяснить, связана ли проблема с выводом тегов, если что-то пошло не так. В противном случае это может быть довольно сложно сделать.
-funoptimized-core-for-interpreter 9.8.1
включено
В настоящее время ghci отключает оптимизации, поскольку не все проходы совместимы с интерпретатором. Этот параметр позволяет обойти эту проверку, например, ghci -O2 -fno-unoptimized-core-for-interpreter. Не рекомендуется использовать его в обычных условиях: он может привести к аварийному завершению компилятора.
Обратите внимание, что это влияет на интерфейс отладчика: при включённых оптимизациях свободные переменные в точках останова могут заменяться сложными выражениями. Такие выражения нельзя сохранить в точках останова, поэтому при включённом флаге невозможно будет исследовать свободные переменные, относящиеся к оптимизированному коду.
-fadd-bco-name 9.14.1
Добавлять перед каждым сгенерированным объектом байт-кода инструкцию BCO_NAME, содержащую имя привязки STG, из которой был получен BCO. Дизассемблер байт-кода выводит эти имена, что помогает сопоставлять байт-код с STG.
© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.14.1/docs/users_guide/debugging.html
|
|