TL:DR
Вы можете генерировать лязг отладочной информации (CFGs, PDGs), когда исходный файл имеет ошибки в зависимости от отсутствующих файлов заголовки, которые вызывают вопросы компиляции, такие как необъявленные идентификаторы и неизвестные типы? Файлы синтаксически корректны. Есть ли флаг, который может установить все необъявленные идентификаторы для INT для отладки?ошибки Обходного C для генерации лязг отладочной информации
Я использую Clang для анализа пакетов исходного кода. Обычно я изменить Makefile так лязг генерирует отладочную информацию, используя команду ниже
clang -emit-llvm -g -S -ferror-limit=0 -I somefile some_c_file
Однако этот подход очень Makefile сосредоточенным и если разработчик не поддерживает Clang в этой данной версии сборки, я должен выяснить, как генерировать отладочную информацию.
Это не подходит для автоматизации. Для таких вещей, как OpenSSL, где они включают десяток файлов (заголовков) и пользовательских конфигураций для данной платформы, это нецелесообразно. Я хочу подавить или игнорировать ошибки, если это возможно, так как я знаю, что файл версии сборки под тестированием синтаксически правильный.
Спасибо!
Я не думаю, что это возможно. Чтобы сгенерировать код, компилятору нужна информация, которая находится во входящих файлах. – Stargateur
Может быть, так. Однако я надеялся, что кто-то научит меня трюкам в торговле. Либо есть «трюк в торговле», когда речь заходит об анализе безопасности и источника, или есть много бумаг безопасности, которые являются ПОЛНЫМИ болонье. –
Обратите внимание, что обычно вам не нужно вручную исправлять make-файлы - несколько переменных среды, а в худшем случае трюки PATH и сценарии с соответствующим именем могут иметь большое значение. Такие вещи, как 'scanbuild', могут в основном автоматизировать это с помощью статического анализатора clang. Кроме того, в настоящее время, если он компилируется в gcc, вы, как правило, можете заставить clang скомпилировать его - часто худшее, что вам нужно, это всего лишь пара определений, чтобы код выглядел как gcc. Наконец, есть инструменты, такие как Psyche-c, которые разрабатываются, но они все еще очень экспериментальны. –