-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 для функции листа"