Как проверить, был ли установлен флаг -g (опция debug info), с моего llvm pass, который я пишу? Я просто пытаюсь выяснить, есть ли способ получить параметры командной строки через мой проход, включая -g.Как я могу проверить, был ли установлен флаг -g (опция debug info), от llvm pass
ответ
Когда Clang генерирует LLVM IR, он напрямую не записывает, какие параметры командной строки были использованы. Однако вы можете легко проверить, включена ли информация об отладке, проверяя наличие указанной отладочной информации.
Самый простой подход, который я могу вспомнить, проверка на наличие узла !llvm.dbg.cu
имени метаданных:
bool wasCompiledWithDebugInfo(const Module& M) {
return M.getNamedMetadata("llvm.dbg.cu") != NULL;
}
Это должно работать в большинстве случаев Там один улов - один Module
на самом деле может состоять из нескольких компиляцией единицы связаны друг с другом, некоторые скомпилированы с информацией об отладке, а некоторые нет. Если вас это не волнует, тогда вы получили свой ответ.
Если вам все равно, вам нужно более конкретно узнать, чего вы действительно пытаетесь достичь. Например, если вам интересно, была ли скомпилирована определенная функция с отладочной информацией, вы должны проверить эту функцию напрямую (на searching for the DISubprogram
metadata describing it) вместо того, чтобы спрашивать об элементах компиляции.
- 1. проверить, установлен ли флаг флага
- 2. В командлете, как определить, установлен ли флаг Debug?
- 3. Как проверить, был ли установлен флажок?
- 4. Как проверить флаг DEBUG с помощью C#
- 5. Как проверить, был ли установлен пользовательский делегат?
- 6. Как использовать функцию exisiting pass от моего LLVM-pass?
- 7. Как проверить, установлен ли флаг в структуре TCP?
- 8. Как я могу программно проверить, установлен ли Visio и где?
- 9. Изменение журналов фляг от INFO до DEBUG
- 10. Что такое Debug Info?
- 11. Как проверить, установлен ли флаг WindowStaysOnTopHint в windowFlags?
- 12. Как проверить, установлен ли флаг в перечислении флагов?
- 13. Пишем LLVM Pass
- 14. получение http debug info
- 15. FireMonkey «Нет Debug Info»
- 16. Опция g ++ g ++ эквивалентна компилятору VS2010 cl?
- 17. Clang, LLVM и g ++
- 18. Как проверить, когда был установлен сервер sql
- 19. Как запустить функцию Pass перед модулем Pass в LLVM?
- 20. Как проверить AppBarLayout.Behavior dragCallback был установлен?
- 21. Grails: Есть ли флаг отладки, который я могу проверить?
- 22. Как проверить, установлен ли LogWriter?
- 23. Framework argparse - проверить, если установлен флаг
- 24. Как проверить, был ли cookie установлен с помощью jQuery?
- 25. Как проверить, был ли ответ уже установлен/отправлен?
- 26. Препроцессор llvm g ++ проходит
- 27. Как проверить, установлен ли WaitHandle?
- 28. Как я могу проверить, был ли вход пустым?
- 29. В clojure, как я могу проверить, был ли символ определен?
- 30. GDB debug info parser/description
Спасибо дуб! Это то, о чем я думал. Я просто пытался выяснить, есть ли способ получить параметры командной строки через мой проход, включая -g. Это приятно, потому что вы также указываете мне на один из моих старых ответов в переполнении стека :) – Kyriakos