(Предисловие: я довольно новичок в C/С++, и я действительно не знаю, как на самом деле работает отладка в собственном коде.)
В некоторых источниках говорится, что gdb и lldb могут отлаживать любую программу, скомпилированную в машинный код. Другие говорят, что для отладки с помощью gdb вы должны компилироваться в gcc с флагом -g
. Документация для gcc сама предполагает, что это необязательно, и на самом деле, если вы его используете, это может вызвать проблемы для отладчиков, отличных от gdb. У Clang также есть флаг -g
, и в документации в основном просто сказано "Генерировать информацию отладки".
Итак, эти отладчики ограничены своими собственными инструментальными цепочками (GNU и LLVM) или они каким-то образом независимы от используемого компилятора?