2017-01-31 10 views
0

Я собираюсь установить kgdb для отладки Ubuntudebian Ядро.make-kpkg построить ядро ​​с -O0 для kgdb

По умолчанию ядро, скомпилированное по make-kpkg, было оптимизировано (-O2), поэтому я не могу отлаживать переменные.

Есть ли способ отключить оптимизацию компиляции ядра (например, -O0)?

спасибо!

В настоящее время, GDB сообщает переменная была оптимизирована:

(gdb) p pb 
$5 = <optimized out> 
+0

Вы, вероятно, получите лучшие результаты отладки с помощью '-g3 -O0' или' -g3 -O1'. '-g3' включает в себя символические определения. Я не знаю, насколько хорошо ядро ​​будет работать на '-O0'. Это может быть болезненно медленным. Можете ли вы построить интересующий модуль на '-g3 -O0'? – jww

ответ

1

Ядро Linux зависит от -O2. Он не будет компилироваться с более низкими уровнями оптимизации. Он использует несколько «трюков» GCC, которые работают только при включении определенных оптимизаций, таких как встроенные функции, которые должны действовать как макросы.

 Смежные вопросы

  • Нет связанных вопросов^_^