Ответ 1
Просто гадать, но это _DictionaryTree_getNodeList в другом файле, который не был скомпилирован с -g?
Я скомпилировал свою программу на C с помощью gcc 4.4.1, используя флаг -g
, но когда я пытаюсь выполнить одну из своих функций в gdb версии 7.0 > , Я получаю сообщение:
"Single stepping until exit from function _DictionaryTree_getNodeList,
which has no line number information."
Может кто-нибудь сказать мне, почему это происходит?
Просто гадать, но это _DictionaryTree_getNodeList в другом файле, который не был скомпилирован с -g?
У меня была такая же проблема, но в моем случае добавления -g
в компилятор было недостаточно, поэтому я использовал -ggdb
, как было предложено Manav.
В моем случае проблема заключалась в перекосе версии между gcc
и gdb
.
После приземления здесь из поиска, и ни один из этих ответов не соответствует моей ситуации, я понял, что (из-за псевдонимов/символических ссылок/ Makefile
/переменных окружения) я случайно использовал новый GCC (4.8.x) и более старый GDB (7.2). Устранение проблемы с новой версией GDB (7.8). По какой-то причине использование более нового GCC и более старого GDB не помогло.
У меня тоже было это сообщение об ошибке, но источник моей проблемы был другим. Если у кого-то все еще есть проблемы, убедитесь, что у вас есть #include <stdio.h>
в вашем файле, с соответствующими скобками вокруг stdio.h
(текстовое сообщение не будет отображаться, если бы оно было вокруг stdio.h
).
У меня была такая же проблема, когда я скомпилировал файл с использованием опции -g и без опции -g. Для одного из файлов gdb отображал номер строки без каких-либо проблем (даже когда он был скомпилирован без опции -g). И для другого файла я должен был явно указать флаг -g...
Любые идеи относительно того, можно ли загружать исходный файл во время выполнения GDB с перекрестными ссылками будет хорошим решением... путем сопоставления строк по адресам: D.
У меня была эта проблема, потому что я отлаживал разделяемую библиотеку, не указывая LD_LIBRARY_PATH для исправления местоположения с помощью отладочных конечных элементов.
вы можете использовать
export LD_LIBRARY_PATH=<location of the debug build of the .so file>:$LD_LIBRARY_PATH
Надеюсь, это поможет кому-то
У меня была такая же проблема, несмотря на то, что я уже писал с -g2
. Изменение его на -g3
сделало трюк.