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