Подтвердить что ты не робот

Почему я получаю сообщение "Single-stepping до выхода..., который не имеет информации о номере линии" в GDB?

Я скомпилировал свою программу на C с помощью gcc 4.4.1, используя флаг -g, но когда я пытаюсь выполнить одну из своих функций в gdb версии 7.0 > , Я получаю сообщение:

"Single stepping until exit from function _DictionaryTree_getNodeList, 
which has no line number information."

Может кто-нибудь сказать мне, почему это происходит?

4b9b3361

Ответ 1

Просто гадать, но это _DictionaryTree_getNodeList в другом файле, который не был скомпилирован с -g?

Ответ 2

У меня была такая же проблема, но в моем случае добавления -g в компилятор было недостаточно, поэтому я использовал -ggdb, как было предложено Manav.

Ответ 3

В моем случае проблема заключалась в перекосе версии между gcc и gdb.

После приземления здесь из поиска, и ни один из этих ответов не соответствует моей ситуации, я понял, что (из-за псевдонимов/символических ссылок/ Makefile/переменных окружения) я случайно использовал новый GCC (4.8.x) и более старый GDB (7.2). Устранение проблемы с новой версией GDB (7.8). По какой-то причине использование более нового GCC и более старого GDB не помогло.

Ответ 4

У меня тоже было это сообщение об ошибке, но источник моей проблемы был другим. Если у кого-то все еще есть проблемы, убедитесь, что у вас есть #include <stdio.h> в вашем файле, с соответствующими скобками вокруг stdio.h (текстовое сообщение не будет отображаться, если бы оно было вокруг stdio.h).

Ответ 5

У меня была такая же проблема, когда я скомпилировал файл с использованием опции -g и без опции -g. Для одного из файлов gdb отображал номер строки без каких-либо проблем (даже когда он был скомпилирован без опции -g). И для другого файла я должен был явно указать флаг -g...

Любые идеи относительно того, можно ли загружать исходный файл во время выполнения  GDB с перекрестными ссылками будет хорошим решением... путем сопоставления  строк по адресам: D.

Ответ 6

У меня была эта проблема, потому что я отлаживал разделяемую библиотеку, не указывая LD_LIBRARY_PATH для исправления местоположения с помощью отладочных конечных элементов.

вы можете использовать

export LD_LIBRARY_PATH=<location of the debug build of the .so file>:$LD_LIBRARY_PATH

Надеюсь, это поможет кому-то

Ответ 7

У меня была такая же проблема, несмотря на то, что я уже писал с -g2. Изменение его на -g3 сделало трюк.