gdb: "таблица символов не загружается"



Я продолжаю получать это сообщение об ошибке при попытке добавить точку останова в gdb.



я использовал эти команды для компиляции:



gcc -g main.c utmpib2.c -o main.o
and:
cc -g main.c utmpib2.c -o main.o
and also:
g++ -g main.c utmpib2.c -o main.o


Я также попытался "- ggdb "вместо" - g", и я все еще получаю это сообщение об ошибке.



затем я выполняю gdb:



$gdb


в gdb:



(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.
857   4  

4 ответов:

прежде всего, у вас есть полностью скомпилированная программа, а не объектный файл, поэтому отбросьте

вы должны добавить дополнительный параметр-g, который генерирует отладочную информацию на уровне источника. Это будет выглядеть так:

gcc -g prog.c

после этого вы можете использовать gdb обычным способом.

у меня такая же проблема и я следовал этому Post, это решило мою проблему.

выполните следующие 2 шага:

  1. убедитесь, что уровень оптимизации составляет -O0
  2. добавить -ggdb флаг при компиляции программы

удачи!

всякий раз, когда gcc на машине компиляции и gdb на испытательной машине есть различные версии, вы можете столкнуться несовместимость формата debuginfo.

чтобы исправить это, попробуйте понизить формат debuginfo:

gcc -gdwarf-3 ...
gcc -gdwarf-2 ...
gcc -gstabs ...
gcc -gstabs+ ...
gcc -gcoff ...
gcc -gxcoff ...
gcc -gxcoff+ ...

или матч gdb до gcc вы используете.

Comments

    Ничего не найдено.