-fno-omit-frame-pointer эквивалентная опция компилятора для clang

Я хочу использовать DS-5 Streamline profiler чтобы профилировать мой код. В документации упоминается, что для того, чтобы увидеть стеки вызовов, нам нужно скомпилировать код с опцией компилятора. -fno-omit-frame-pointer, Эта опция есть в gcc. Есть ли эквивалентная опция для clang?

-fno-omit-frame-pointer не работает для меня с лязгом.

Я также пытался установить уровень оптимизации компилятора на 0, но все же я не получаю стеки вызовов в упорядоченном виде.

1 ответ

Похоже, что DS-5 - вещь ARM, так что это может быть неактуально, но я столкнулся с аналогичной проблемой, пытаясь получить хорошие следы стека из исполняемого clang-исполняемого файла с помощью профилировщика перфоратора Linux.

Проблема заключалась в том, что, по крайней мере на Linux x86-64, Clang требует -fno-omit-frame-pointer а также -mno-omit-leaf-frame-pointer для того, чтобы получить то же поведение, которое дает только gcc -fno-omit-frame-pointer, Посмотрите эту ошибку LLVM: "Нужны оба -fno-omit-frame-pointer и -mno-omit-leaf-frame-pointer, чтобы получить fp на linux для функции листа"

Другие вопросы по тегам